{"id":2131,"date":"2013-08-07T07:55:13","date_gmt":"2013-08-07T07:55:13","guid":{"rendered":"https:\/\/intelligentbee.com\/blog\/?p=2131"},"modified":"2024-05-31T08:31:59","modified_gmt":"2024-05-31T08:31:59","slug":"symfony2-jobeet-day-1-starting-up-the-project","status":"publish","type":"post","link":"https:\/\/intelligentbee.com\/blog\/symfony2-jobeet-day-1-starting-up-the-project\/","title":{"rendered":"Symfony2 Jobeet Day 1: Starting up the Project"},"content":{"rendered":"<p><span style=\"font-family: timesnew roman; font-size: 12px;\">* This article is part of the original <a href=\"http:\/\/symfony.com\/legacy\/doc\/jobeet?orm=Doctrine\" target=\"_blank\" rel=\"noopener\">Jobeet Tutorial<\/a>, created by Fabien Potencier, for Symfony 1.4.<\/span><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_68_1 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title \" >Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/intelligentbee.com\/blog\/symfony2-jobeet-day-1-starting-up-the-project\/#What_is_Jobeet\" title=\"What is Jobeet?\">What is Jobeet?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/intelligentbee.com\/blog\/symfony2-jobeet-day-1-starting-up-the-project\/#Setting_up_the_working_development_environment\" title=\"Setting up the working development environment\">Setting up the working development environment<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/intelligentbee.com\/blog\/symfony2-jobeet-day-1-starting-up-the-project\/#Download_and_install_Symfony_232\" title=\"Download and install Symfony 2.3.2\">Download and install Symfony 2.3.2<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/intelligentbee.com\/blog\/symfony2-jobeet-day-1-starting-up-the-project\/#Web_Server_Configuration\" title=\"Web Server Configuration\">Web Server Configuration<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/intelligentbee.com\/blog\/symfony2-jobeet-day-1-starting-up-the-project\/#Symfony2_Console\" title=\"Symfony2 Console\">Symfony2 Console<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/intelligentbee.com\/blog\/symfony2-jobeet-day-1-starting-up-the-project\/#Creating_the_Application_Bundle\" title=\"Creating the Application Bundle\">Creating the Application Bundle<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/intelligentbee.com\/blog\/symfony2-jobeet-day-1-starting-up-the-project\/#The_Environments\" title=\"The Environments\">The Environments<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"What_is_Jobeet\"><\/span>What is Jobeet?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Jobeet is an Open-Source job board software which provides you day-by-day tutorials, that will help you learn the latest Web Technolgy, <code>Symfony 2.3.2<\/code> (for those who don\u2019t know yet, Symfony is a framework for PHP).<span id=\"more-179\"><\/span><\/p>\n<p>Each chapter\/day is meant to last about one hour, and will be the occasion to learn Symfony by coding a real website, from start to finish.<\/p>\n<p>Every day, new features will be added to the application and we\u2019ll take advantage of this development to introduce you to new Symfony functionalities, as well as good practices in Symfony web development.<\/p>\n<p>Today, being your first day, you won\u2019t be writing any code. Instead, you will setup a working development environment.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Setting_up_the_working_development_environment\"><\/span>Setting up the working development environment<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>First of all, you need to check that your computer has a friendly working environment for web development. We will use Ubuntu 12.04 LTS Server installed in a VMware Player virtual machine. At a minimum, you need a web server (Apache, for instance), a database engine (MySQL) and PHP 5.3.3 or later.<\/p>\n<p>1. Install <code>Apache<\/code>, your web server:<\/p>\n<pre class=\"theme:tomorrow-night toolbar:2 striped:false nums:false lang:default decode:true\">sudo apt-get install apache2<\/pre>\n<p>and enable Apache mod-rewrite:<\/p>\n<pre class=\"theme:tomorrow-night toolbar:2 nums:false nums-toggle:false lang:default decode:true \">sudo a2enmod rewrite<\/pre>\n<p>2, Install the <code>MySQL Server<\/code>:<\/p>\n<pre class=\"theme:tomorrow-night toolbar:2 nums:false lang:default decode:true\">sudo apt-get install mysql-server mysql-client<\/pre>\n<p>3. Install <code>PHP<\/code>, the server scripting language<\/p>\n<pre class=\"theme:tomorrow-night toolbar:2 nums:false lang:default decode:true \">sudo apt-get install php5 libapache2-mod-php5 php5-mysql<\/pre>\n<p>4. Install <code>Intl<\/code> extension:<\/p>\n<pre class=\"theme:tomorrow-night toolbar:2 nums:false lang:default decode:true \">sudo apt-get install php5-intl<\/pre>\n<p>5. Now, you need to restart Apache service:<\/p>\n<pre class=\"theme:tomorrow-night toolbar:2 nums:false lang:default decode:true \">sudo service apache2 restart<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Download_and_install_Symfony_232\"><\/span>Download and install Symfony 2.3.2<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The first thing to do is to prepare a directory on your web server where you want to install the new project. Let\u2019s call it <code>jobeet<\/code>: <code>\/var\/www\/jobeet<\/code>.<\/p>\n<div>\n<div id=\"highlighter_464482\">\n<pre class=\"theme:tomorrow-night toolbar:2 nums:false lang:default decode:true \">mkdir \/var\/www\/jobeet<\/pre>\n<\/div>\n<\/div>\n<p>We have a directory prepared, but what to put in it? Go to http:\/\/symfony.com\/download, choose <code>Symfony Standard 2.3.2 without vendors<\/code> and download it. Now, unzip the files inside the <code>Symfony<\/code> directory to your prepared directory, <code>jobeet<\/code>.<\/p>\n<h3>Updating Vendors<\/h3>\n<p>At this point, you\u2019ve downloaded a fully-functional Symfony project in which you\u2019ll start to develop your own application. A Symfony project depends on a number of external libraries. These are downloaded into the <code>vendor\/<\/code> directory of your project via a library called <code>Composer<\/code>.<\/p>\n<p>Composer is a dependency management library for PHP, which you can use to download the Symfony 2.3.2 Standard Edition. Start by downloading Composer onto your <code>jobeet<\/code> directory:<\/p>\n<pre class=\"theme:tomorrow-night toolbar:2 nums:false lang:default decode:true \">curl -s https:\/\/getcomposer.org\/installer | php<\/pre>\n<blockquote><p>If you don\u2019t have <code>curl<\/code> extension installed, you can install it using this command:<\/p>\n<pre class=\"theme:tomorrow-night toolbar:2 nums:false lang:default decode:true \">sudo apt-get install curl<\/pre>\n<\/blockquote>\n<p>Next, type the following command to start downloading all the necessary vendor libraries:<\/p>\n<pre class=\"theme:tomorrow-night toolbar:2 nums:false lang:default decode:true \">php composer.phar install<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Web_Server_Configuration\"><\/span>Web Server Configuration<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A good web practice is to put under the web root directory only the files that need to be accessed by a web browser, like stylesheets, JavaScripts and images. By default, it\u2019s recommended to store these files under the <code>web\/<\/code> sub-directory of a symfony project.<\/p>\n<p>To configure Apache for your new project, you will create a virtual host. In order to do that, go to your terminal and type in the next command :<\/p>\n<pre class=\"theme:tomorrow-night toolbar:2 nums:false lang:default decode:true \">sudo nano \/etc\/apache2\/sites-available\/jobeet.local<\/pre>\n<p>Now, a file named <code>jobeet.local<\/code> is created. Put the following inside that file, then hit Control \u2013 O and Enter to save it, then Control \u2013 X to exit the editor.<\/p>\n<pre class=\"theme:tomorrow-night toolbar:1 lang:default decode:true\" title=\"\/etc\/apache2\/sites-available\/jobeet.local\">&lt;VirtualHost *:80&gt;\r\n    ServerName jobeet.local\r\n    DocumentRoot \/var\/www\/jobeet\/web\r\n    DirectoryIndex app.php\r\n    ErrorLog \/var\/log\/apache2\/jobeet-error.log\r\n    CustomLog \/var\/log\/apache2\/jobeet-access.log combined\r\n    &lt;Directory \"\/var\/www\/jobeet\/web\"&gt;\r\n        AllowOverride All\r\n        Allow from All\r\n     &lt;\/Directory&gt;\r\n&lt;\/VirtualHost&gt;<\/pre>\n<p>The domain name <code>jobeet.local<\/code> used in the Apache configuration has to be declared locally. If you run a Linux system, it has to be done in the <code>\/etc\/hosts<\/code> file. If you run Windows, this file is located in the <code>C:WindowsSystem32driversetc<\/code> directory. Add the following line:<\/p>\n<pre class=\"theme:tomorrow-night toolbar:2 nums:false lang:default decode:true \">127.0.0.1 jobeet.local<\/pre>\n<blockquote><p>Replace 127.0.0.1 with the ip of your web server machine in case you are working on a remote server.<\/p><\/blockquote>\n<p>If you want this to work, you need to enable the newly created virtual host and restart your Apache. So go to your terminal and type:<\/p>\n<pre class=\"theme:tomorrow-night toolbar:2 nums:false lang:default decode:true\">sudo a2ensite jobeet.local\r\nsudo service apache2 restart<\/pre>\n<p>Symfony comes with a visual server configuration tester to help make sure your Web server and PHP are correctly configured to use Symfony. Use the following URL to check your configuration:<\/p>\n<p>http:\/\/jobeet.local\/config.php<\/p>\n<p><a href=\"\/\/intelligentbee.com\/blog\/wp-content\/uploads\/2017\/03\/sf2-config-1.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-72\" src=\"\/\/intelligentbee.com\/blog\/wp-content\/uploads\/2017\/03\/sf2-config-1.png\" alt=\"sf2-config (1)\" width=\"987\" height=\"953\" \/><\/a><\/p>\n<div><\/div>\n<blockquote>\n<div>If you don\u2019t run this from your localhost, you should locate and open <code>web\/config.php<\/code> file and comment the lines that restrict the access outside localhost:<\/div>\n<div>\n<pre class=\"theme:tomorrow-night toolbar:1 lang:php decode:true\" title=\"web\/config.php\">if (!isset($_SERVER['HTTP_HOST'])) {\r\n    exit('This script cannot be run from the CLI. Run it from a browser.');\r\n}\r\n\r\n\/*\r\nif (!in_array(@$_SERVER['REMOTE_ADDR'], array(\r\n    '127.0.0.1',\r\n    '::1',\r\n))) {\r\n    header('HTTP\/1.0 403 Forbidden');\r\n    exit('This script is only accessible from localhost.');\r\n}\r\n*\/\r\n\r\n\/\/ ...<\/pre>\n<p>Do the same for <code>web\/app_dev.php<\/code>:<\/p>\n<pre class=\"theme:tomorrow-night toolbar:1 lang:php decode:true\" title=\"web\/app_dev.php.php\">use SymfonyComponentHttpFoundationRequest;\r\nuse SymfonyComponentDebugDebug;\r\n\r\n\/\/ If you don't want to setup permissions the proper way, just uncomment the following PHP line\r\n\/\/ read http:\/\/symfony.com\/doc\/current\/book\/installation.html#configuration-and-setup for more information\r\n\/\/umask(0000);\r\n\r\n\/\/ This check prevents access to debug front controllers that are deployed by accident to production servers.\r\n\/\/ Feel free to remove this, extend it, or make something more sophisticated.\r\n\/*\r\nif (isset($_SERVER['HTTP_CLIENT_IP'])\r\n    || isset($_SERVER['HTTP_X_FORWARDED_FOR'])\r\n    || !in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1'))\r\n) {\r\n    header('HTTP\/1.0 403 Forbidden');\r\n    exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');\r\n}\r\n*\/\r\n\r\n$loader = require_once __DIR__.'\/..\/app\/bootstrap.php.cache';\r\nDebug::enable();\r\n\r\nrequire_once __DIR__.'\/..\/app\/AppKernel.php';\r\n\r\n\/\/ ...<\/pre>\n<\/div>\n<\/blockquote>\n<div>\n<p>Probably, you will get all kind of requirements when you go to <code>config.php.<\/code> Below, is a list of things to do for not getting all those \u201cwarnings\u201d.<\/p>\n<p>1. Change the permissions of <code>app\/cache<\/code> and <code>app\/logs:<\/code><\/p>\n<pre class=\"theme:tomorrow-night toolbar:2 striped:false nums:false lang:default decode:true\">sudo chmod -R 777 app\/cache\r\nsudo chmod -R 777 app\/logs\r\nsudo setfacl -dR -m u::rwX app\/cache app\/logs<\/pre>\n<blockquote><p>Install ACL if you don\u2019t have it yet:<\/p>\n<pre class=\"theme:tomorrow-night toolbar:2 striped:false nums:false lang:default decode:true\">sudo apt-get install acl<\/pre>\n<\/blockquote>\n<p>2. Set the <code>date.timezone<\/code> setting in <code>php.ini<\/code><\/p>\n<\/div>\n<pre class=\"theme:tomorrow-night toolbar:1 nums:false lang:default decode:true \" title=\"etc\/php5\/apache2\/php.ini\">date.timezone = Europe\/Bucharest<\/pre>\n<pre class=\"theme:tomorrow-night toolbar:2 nums:false lang:default decode:true \">sudo nano \/etc\/php5\/apache2\/php.ini<\/pre>\n<div>\n<div id=\"highlighter_284746\"><span style=\"line-height: 1.714285714; font-size: 1rem;\">Find the <\/span><code style=\"line-height: 1.714285714;\">date.timezone<\/code><span style=\"line-height: 1.714285714; font-size: 1rem;\"> setting for <\/span><code style=\"line-height: 1.714285714;\">[date]<\/code><span style=\"line-height: 1.714285714; font-size: 1rem;\"> section and set it to your timezone. After that, erase \u201c;\u201d, placed at the beginning of the line.<\/span><\/div>\n<\/div>\n<div>\n<div id=\"highlighter_430743\"><span style=\"line-height: 1.714285714; font-size: 1rem;\">3. Set the <\/span><code style=\"line-height: 1.714285714;\">short_open_tag<\/code><span style=\"line-height: 1.714285714; font-size: 1rem;\"> setting to <\/span><code style=\"line-height: 1.714285714;\">off<\/code><span style=\"line-height: 1.714285714; font-size: 1rem;\"> in the same <\/span><code style=\"line-height: 1.714285714;\">php.ini<\/code><span style=\"line-height: 1.714285714; font-size: 1rem;\"> file<\/span><\/div>\n<\/div>\n<div>\n<div id=\"highlighter_702348\">\n<pre class=\"theme:tomorrow-night toolbar:1 lang:default decode:true \" title=\"etc\/php5\/apache2\/php.ini\">short_open_tag\r\n  Default Value: Off<\/pre>\n<p><span style=\"line-height: 1.714285714; font-size: 1rem;\">4.<\/span><span style=\"line-height: 1.714285714; font-size: 1rem;\"> Install and enable a PHP Accelerator (APC recommended)<\/span><\/p>\n<\/div>\n<div>\n<pre class=\"theme:tomorrow-night toolbar:2 nums:false lang:default decode:true \">sudo apt-get install php-apc\r\nsudo service apache2 restart<\/pre>\n<\/div>\n<\/div>\n<div><\/div>\n<p>After restarting Apache, open a browser window and type in http:\/\/jobeet.local\/app_dev.php. You should see the following page:<\/p>\n<p><a href=\"\/\/intelligentbee.com\/blog\/wp-content\/uploads\/2017\/03\/Day-1-SF_welcome.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-21\" src=\"\/\/intelligentbee.com\/blog\/wp-content\/uploads\/2017\/03\/Day-1-SF_welcome.jpg\" alt=\"Day 1 - SF_welcome\" width=\"1918\" height=\"965\" \/><\/a><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Symfony2_Console\"><\/span>Symfony2 Console<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Symfony2 comes with the console component tool that you will use for different tasks. To see a list of things it can do for you type at the command prompt:<\/p>\n<pre class=\"theme:tomorrow-night toolbar:2 nums:false lang:default decode:true \">php app\/console list<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Creating_the_Application_Bundle\"><\/span>Creating the Application Bundle<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3>What exactly is a bundle?<\/h3>\n<p>Is similar to a plugin in other software, but even better. The key difference is that everything is a bundle in Symfony 2.3.2, including both core framework functionality and the code written for your application.<\/p>\n<p>A bundle is a structured set of files within a directory that implement a single feature.<\/p>\n<p>Tips: A bundle can live anywhere as long as it can be autoloaded (<code>app\/autoload.php<\/code>).<\/p>\n<blockquote><p>You can read more here: http:\/\/symfony.com\/doc\/current\/book\/page_creation.html#the-bundle-system \u2013 The Bundle System.<\/p><\/blockquote>\n<h3>Creating a basic bundle skeleton<\/h3>\n<p>Run the following command to start the Symfony\u2019s bundle generator:<\/p>\n<pre class=\"theme:tomorrow-night toolbar:2 nums:false lang:default decode:true \">php app\/console generate:bundle --namespace=Ibw\/JobeetBundle<\/pre>\n<p>The generator will ask you some questions before generating the bundle. Here are the questions and answers (all, except one, are the default answers):<\/p>\n<pre class=\"theme:tomorrow-night toolbar:2 nums:false lang:default decode:true \">Bundle name [IbwJobeetBundle]: IbwJobeetBundle\r\nTarget directory [\/var\/www\/jobeet\/src]: \/var\/www\/jobeet\/src\r\nConfiguration format (yml, xml, php, or annotation) [yml]: yml\r\nDo you want to generate the whole directory structure [no]? yes\r\nDo you confirm generation [yes]? yes\r\nConfirm automatic update of your Kernel [yes]? yes\r\nConfirm automatic update of the Routing [yes]? yes<\/pre>\n<p>Clear the cache after generating the new bundle with:<\/p>\n<pre class=\"theme:tomorrow-night toolbar:2 nums:false lang:default decode:true \">php app\/console cache:clear --env=prod\r\nphp app\/console cache:clear --env=dev<\/pre>\n<p>The new Jobeet bundle can be now found in the <code>src<\/code> directory of your project: <code>src\/Ibw\/JobeetBundle<\/code>. The bundle generator made a <code>DefaultController<\/code> with an index action. You can access this in your browser: http:\/\/jobeet.local\/hello\/jobeet or http:\/\/jobeet.local\/app_dev.php\/hello\/jobeet.<\/p>\n<h3>How to remove the AcmeDemoBundle<\/h3>\n<p>The Symfony 2.3.2 Standard Edition comes with a complete demo that lives inside a bundle called AcmeDemoBundle. It is a great boilerplate to refer to while starting a project, but you\u2019ll probably want to eventually remove it.<\/p>\n<p>1. Type the command to delete <code>Acme<\/code> directory:<\/p>\n<pre class=\"theme:tomorrow-night toolbar:2 nums:false lang:default decode:true \">rm -rf \/var\/www\/jobeet\/src\/Acme<\/pre>\n<p>2. Go to: <code>\/var\/www\/jobeet\/app\/AppKernel.php<\/code> and delete:<\/p>\n<pre class=\"theme:tomorrow-night toolbar:1 lang:default decode:true \" title=\"app\/AppKernel.php\">\/\/ ...\r\n\r\n$bundles[] = new AcmeDemoBundleAcmeDemoBundle();\r\n\r\n\/\/ ...<\/pre>\n<p>and now delete from<code> app\/config\/routing_dev.yml:<\/code><\/p>\n<pre class=\"theme:tomorrow-night toolbar:1 lang:yaml decode:true \" title=\"app\/config\/routing_dev.yml\"># ... \r\n\r\n# AcmeDemoBundle routes (to be removed)\r\n_acme_demo:\r\n    resource: \"@AcmeDemoBundle\/Resources\/config\/routing.yml\"<\/pre>\n<p>3. Finally, clear the cache.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"The_Environments\"><\/span>The Environments<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Symfony 2.3.2 has different environments. If you look in the project\u2019s web directory, you will see two php files: <code>app.php<\/code> and <code>app_dev.php<\/code>. These files are called front controllers; all requests to the application are made through them. The <code>app.php<\/code> file is for production environment and <code>app_dev.php<\/code> is used by web developers when they work on the application in the development environment. The development environment will prove very handy because it will show you all the errors and warnings and the Web Debug Toolbar \u2013 the developer\u2019s best friend.<\/p>\n<p><strong>That\u2019s all for today. See you on the next day of this tutorial, when we will talk about what exactly the Jobeet website will be about!<\/strong><\/p>\n<p><a href=\"http:\/\/creativecommons.org\/licenses\/by-sa\/3.0\/\" rel=\"license\"><img decoding=\"async\" style=\"border-width: 0;\" src=\"https:\/\/i.creativecommons.org\/l\/by-sa\/3.0\/88x31.png\" alt=\"Creative Commons License\" \/><\/a><br \/>\nThis work is licensed under a <a href=\"http:\/\/creativecommons.org\/licenses\/by-sa\/3.0\/\" target=\"_blank\" rel=\"license noopener\">Creative Commons Attribution-ShareAlike 3.0 Unported License<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>* This article is part of the original Jobeet Tutorial, created by Fabien Potencier, for Symfony 1.4. What is Jobeet? [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[82],"tags":[],"yst_prominent_words":[355,564,682,729,990,1005,1009,1058],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/posts\/2131"}],"collection":[{"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/comments?post=2131"}],"version-history":[{"count":3,"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/posts\/2131\/revisions"}],"predecessor-version":[{"id":133045,"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/posts\/2131\/revisions\/133045"}],"wp:attachment":[{"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/media?parent=2131"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/categories?post=2131"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/tags?post=2131"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/yst_prominent_words?post=2131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}