{"id":757,"date":"2014-08-10T15:23:33","date_gmt":"2014-08-10T13:23:33","guid":{"rendered":"http:\/\/blog.robinglauser.ch\/?p=757"},"modified":"2014-08-10T15:27:59","modified_gmt":"2014-08-10T13:27:59","slug":"8-of-my-favorite-php-libraries-frameworks-and-tools","status":"publish","type":"post","link":"https:\/\/www.robinglauser.ch\/blog\/2014\/08\/10\/8-of-my-favorite-php-libraries-frameworks-and-tools\/","title":{"rendered":"8 of my favorite PHP Libraries, Frameworks and Tools."},"content":{"rendered":"<ol>\n<li>The\u00a0<a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\">Composer<\/a>\u00a0packet manager is great because when using it you don&#8217;t have to commit\u00a0all your php library code onto Github. You can just commit\u00a0the composer.json and composer.lock file and your fellow developers will get the same version as you have.<\/li>\n<li><a href=\"http:\/\/symfony.com\/\" target=\"_blank\">Symfony<\/a>\u00a0is one of the best and most popular php frameworks. It&#8217;s extensibility with the bundle principle is one of the main reasons I like this framework so much.<\/li>\n<li><a href=\"http:\/\/www.doctrine-project.org\/\" target=\"_blank\">Doctrine<\/a>\u00a0is a ORM which is used by default with Symfony.<\/li>\n<li><a href=\"http:\/\/twig.sensiolabs.org\/\" target=\"_blank\">Twig<\/a>\u00a0is the template engine use in Symfony. You can also use it easily in your own projects.<\/li>\n<li><a href=\"http:\/\/silex.sensiolabs.org\/\" target=\"_blank\">Silex<\/a>\u00a0is kind of the little brother of Symfony. It&#8217;s really great at creating one page or simple projects, but still offers a lot of extensibility.<\/li>\n<li><a href=\"https:\/\/github.com\/sebastianbergmann\/phpunit\" target=\"_blank\">PHPunit<\/a> is one of the things in PHP everybody should use. It&#8217;s one of the most popular\u00a0unit testing frameworks.<\/li>\n<li><a href=\"https:\/\/github.com\/filp\/whoops\" target=\"_blank\">Whoops<\/a>\u00a0is a error handler for PHP. With it you can see the whole stacktrace and the value of the default PHP global objects. ($_GET, $_POST, $_SERVER, etc).<\/li>\n<li><a href=\"http:\/\/xdebug.org\/\" target=\"_blank\">Xdebug<\/a>\u00a0is a debugger and profiler for PHP. You can use it to create breakpoints in your PHP applications.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p class=\"excerpt\">The\u00a0Composer\u00a0packet manager is great because when using it you don&#8217;t have to commit\u00a0all your php library code onto Github. You can just commit\u00a0the composer.json and composer.lock file and your fellow developers will get the same version as you have. Symfony\u00a0is one of the best and most popular php frameworks. It&#8217;s extensibility with the bundle principle is one of the main &#8230; <a class=\"read-more\" href=\"https:\/\/www.robinglauser.ch\/blog\/2014\/08\/10\/8-of-my-favorite-php-libraries-frameworks-and-tools\/\">Read More<\/a><\/p>\n","protected":false},"author":2,"featured_media":764,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-757","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fresh"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>8 of my favorite PHP Libraries, Frameworks and Tools. - Robin Glauser<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.robinglauser.ch\/blog\/2014\/08\/10\/8-of-my-favorite-php-libraries-frameworks-and-tools\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"8 of my favorite PHP Libraries, Frameworks and Tools. - Robin Glauser\" \/>\n<meta property=\"og:description\" content=\"The\u00a0Composer\u00a0packet manager is great because when using it you don&#8217;t have to commit\u00a0all your php library code onto Github. You can just commit\u00a0the composer.json and composer.lock file and your fellow developers will get the same version as you have. Symfony\u00a0is one of the best and most popular php frameworks. It&#8217;s extensibility with the bundle principle is one of the main ... Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.robinglauser.ch\/blog\/2014\/08\/10\/8-of-my-favorite-php-libraries-frameworks-and-tools\/\" \/>\n<meta property=\"og:site_name\" content=\"Robin Glauser\" \/>\n<meta property=\"article:published_time\" content=\"2014-08-10T13:23:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-08-10T13:27:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2014\/08\/php.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Robin Glauser\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@robinglauser\" \/>\n<meta name=\"twitter:site\" content=\"@robinglauser\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Robin Glauser\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/2014\\\/08\\\/10\\\/8-of-my-favorite-php-libraries-frameworks-and-tools\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/2014\\\/08\\\/10\\\/8-of-my-favorite-php-libraries-frameworks-and-tools\\\/\"},\"author\":{\"name\":\"Robin Glauser\",\"@id\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/#\\\/schema\\\/person\\\/e1a94504a6ff5171fa13670932514b19\"},\"headline\":\"8 of my favorite PHP Libraries, Frameworks and Tools.\",\"datePublished\":\"2014-08-10T13:23:33+00:00\",\"dateModified\":\"2014-08-10T13:27:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/2014\\\/08\\\/10\\\/8-of-my-favorite-php-libraries-frameworks-and-tools\\\/\"},\"wordCount\":208,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/#\\\/schema\\\/person\\\/e1a94504a6ff5171fa13670932514b19\"},\"image\":{\"@id\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/2014\\\/08\\\/10\\\/8-of-my-favorite-php-libraries-frameworks-and-tools\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/08\\\/php.png\",\"articleSection\":[\"Fresh\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/2014\\\/08\\\/10\\\/8-of-my-favorite-php-libraries-frameworks-and-tools\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/2014\\\/08\\\/10\\\/8-of-my-favorite-php-libraries-frameworks-and-tools\\\/\",\"url\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/2014\\\/08\\\/10\\\/8-of-my-favorite-php-libraries-frameworks-and-tools\\\/\",\"name\":\"8 of my favorite PHP Libraries, Frameworks and Tools. - Robin Glauser\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/2014\\\/08\\\/10\\\/8-of-my-favorite-php-libraries-frameworks-and-tools\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/2014\\\/08\\\/10\\\/8-of-my-favorite-php-libraries-frameworks-and-tools\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/08\\\/php.png\",\"datePublished\":\"2014-08-10T13:23:33+00:00\",\"dateModified\":\"2014-08-10T13:27:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/2014\\\/08\\\/10\\\/8-of-my-favorite-php-libraries-frameworks-and-tools\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/2014\\\/08\\\/10\\\/8-of-my-favorite-php-libraries-frameworks-and-tools\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/2014\\\/08\\\/10\\\/8-of-my-favorite-php-libraries-frameworks-and-tools\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/08\\\/php.png\",\"contentUrl\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/08\\\/php.png\",\"width\":800,\"height\":400},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/2014\\\/08\\\/10\\\/8-of-my-favorite-php-libraries-frameworks-and-tools\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"8 of my favorite PHP Libraries, Frameworks and Tools.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/\",\"name\":\"Robin Glauser\",\"description\":\"My Blog about Development, Design and my random thoughts.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/#\\\/schema\\\/person\\\/e1a94504a6ff5171fa13670932514b19\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/#\\\/schema\\\/person\\\/e1a94504a6ff5171fa13670932514b19\",\"name\":\"Robin Glauser\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/10\\\/DSC_1244_small.jpg\",\"url\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/10\\\/DSC_1244_small.jpg\",\"contentUrl\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/10\\\/DSC_1244_small.jpg\",\"width\":800,\"height\":530,\"caption\":\"Robin Glauser\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/10\\\/DSC_1244_small.jpg\"},\"description\":\"I'm a web developer.\",\"sameAs\":[\"https:\\\/\\\/www.robinglauser.ch\",\"https:\\\/\\\/www.instagram.com\\\/robinglauser\\\/\",\"https:\\\/\\\/x.com\\\/robinglauser\"],\"url\":\"https:\\\/\\\/www.robinglauser.ch\\\/blog\\\/author\\\/robin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"8 of my favorite PHP Libraries, Frameworks and Tools. - Robin Glauser","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.robinglauser.ch\/blog\/2014\/08\/10\/8-of-my-favorite-php-libraries-frameworks-and-tools\/","og_locale":"en_US","og_type":"article","og_title":"8 of my favorite PHP Libraries, Frameworks and Tools. - Robin Glauser","og_description":"The\u00a0Composer\u00a0packet manager is great because when using it you don&#8217;t have to commit\u00a0all your php library code onto Github. You can just commit\u00a0the composer.json and composer.lock file and your fellow developers will get the same version as you have. Symfony\u00a0is one of the best and most popular php frameworks. It&#8217;s extensibility with the bundle principle is one of the main ... Read More","og_url":"https:\/\/www.robinglauser.ch\/blog\/2014\/08\/10\/8-of-my-favorite-php-libraries-frameworks-and-tools\/","og_site_name":"Robin Glauser","article_published_time":"2014-08-10T13:23:33+00:00","article_modified_time":"2014-08-10T13:27:59+00:00","og_image":[{"width":800,"height":400,"url":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2014\/08\/php.png","type":"image\/png"}],"author":"Robin Glauser","twitter_card":"summary_large_image","twitter_creator":"@robinglauser","twitter_site":"@robinglauser","twitter_misc":{"Written by":"Robin Glauser","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.robinglauser.ch\/blog\/2014\/08\/10\/8-of-my-favorite-php-libraries-frameworks-and-tools\/#article","isPartOf":{"@id":"https:\/\/www.robinglauser.ch\/blog\/2014\/08\/10\/8-of-my-favorite-php-libraries-frameworks-and-tools\/"},"author":{"name":"Robin Glauser","@id":"https:\/\/www.robinglauser.ch\/blog\/#\/schema\/person\/e1a94504a6ff5171fa13670932514b19"},"headline":"8 of my favorite PHP Libraries, Frameworks and Tools.","datePublished":"2014-08-10T13:23:33+00:00","dateModified":"2014-08-10T13:27:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.robinglauser.ch\/blog\/2014\/08\/10\/8-of-my-favorite-php-libraries-frameworks-and-tools\/"},"wordCount":208,"commentCount":0,"publisher":{"@id":"https:\/\/www.robinglauser.ch\/blog\/#\/schema\/person\/e1a94504a6ff5171fa13670932514b19"},"image":{"@id":"https:\/\/www.robinglauser.ch\/blog\/2014\/08\/10\/8-of-my-favorite-php-libraries-frameworks-and-tools\/#primaryimage"},"thumbnailUrl":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2014\/08\/php.png","articleSection":["Fresh"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.robinglauser.ch\/blog\/2014\/08\/10\/8-of-my-favorite-php-libraries-frameworks-and-tools\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.robinglauser.ch\/blog\/2014\/08\/10\/8-of-my-favorite-php-libraries-frameworks-and-tools\/","url":"https:\/\/www.robinglauser.ch\/blog\/2014\/08\/10\/8-of-my-favorite-php-libraries-frameworks-and-tools\/","name":"8 of my favorite PHP Libraries, Frameworks and Tools. - Robin Glauser","isPartOf":{"@id":"https:\/\/www.robinglauser.ch\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.robinglauser.ch\/blog\/2014\/08\/10\/8-of-my-favorite-php-libraries-frameworks-and-tools\/#primaryimage"},"image":{"@id":"https:\/\/www.robinglauser.ch\/blog\/2014\/08\/10\/8-of-my-favorite-php-libraries-frameworks-and-tools\/#primaryimage"},"thumbnailUrl":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2014\/08\/php.png","datePublished":"2014-08-10T13:23:33+00:00","dateModified":"2014-08-10T13:27:59+00:00","breadcrumb":{"@id":"https:\/\/www.robinglauser.ch\/blog\/2014\/08\/10\/8-of-my-favorite-php-libraries-frameworks-and-tools\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.robinglauser.ch\/blog\/2014\/08\/10\/8-of-my-favorite-php-libraries-frameworks-and-tools\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.robinglauser.ch\/blog\/2014\/08\/10\/8-of-my-favorite-php-libraries-frameworks-and-tools\/#primaryimage","url":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2014\/08\/php.png","contentUrl":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2014\/08\/php.png","width":800,"height":400},{"@type":"BreadcrumbList","@id":"https:\/\/www.robinglauser.ch\/blog\/2014\/08\/10\/8-of-my-favorite-php-libraries-frameworks-and-tools\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.robinglauser.ch\/blog\/"},{"@type":"ListItem","position":2,"name":"8 of my favorite PHP Libraries, Frameworks and Tools."}]},{"@type":"WebSite","@id":"https:\/\/www.robinglauser.ch\/blog\/#website","url":"https:\/\/www.robinglauser.ch\/blog\/","name":"Robin Glauser","description":"My Blog about Development, Design and my random thoughts.","publisher":{"@id":"https:\/\/www.robinglauser.ch\/blog\/#\/schema\/person\/e1a94504a6ff5171fa13670932514b19"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.robinglauser.ch\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.robinglauser.ch\/blog\/#\/schema\/person\/e1a94504a6ff5171fa13670932514b19","name":"Robin Glauser","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2015\/10\/DSC_1244_small.jpg","url":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2015\/10\/DSC_1244_small.jpg","contentUrl":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2015\/10\/DSC_1244_small.jpg","width":800,"height":530,"caption":"Robin Glauser"},"logo":{"@id":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2015\/10\/DSC_1244_small.jpg"},"description":"I'm a web developer.","sameAs":["https:\/\/www.robinglauser.ch","https:\/\/www.instagram.com\/robinglauser\/","https:\/\/x.com\/robinglauser"],"url":"https:\/\/www.robinglauser.ch\/blog\/author\/robin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/posts\/757","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/comments?post=757"}],"version-history":[{"count":4,"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/posts\/757\/revisions"}],"predecessor-version":[{"id":765,"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/posts\/757\/revisions\/765"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/media\/764"}],"wp:attachment":[{"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/media?parent=757"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/categories?post=757"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/tags?post=757"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}