How To: Setup a Symfony Development Environment
Introduction
Symfony , is an MVC (Model, View, Controller) framework written in PHP that takes the toil out of application writing.
By utilizing a framework and a lifecycle like Agile, elegant code is easier to produce and maintain. With proper design patterns already in use, one simply fills in the appropriate logic to create an application.
These benefits are wonderful but we need an environment we can write and test this application. The easiest location is a local workspace but how do we create a Symfony development environment?
The Players
The following packages should be installed before setting up the environment (required USE flags are in parenthesis):
- apache
- mysql
- php (cli ctype reflection spl simplexml xml pcre session apache2 mysql pdo xsl)
- symfony
The Music
Now that all of the players are installed, how do we turn a directory full of various projects into a browseable web location such as http://localhost/PROJECT? The easy way is to setup symlinks to the real DocumentRoots in a dummy directory for apache's sake:
rm -rf /var/www/localhost/htdocs ln -snf ${PROJECT_DIR} /var/www/localhost/htdocs
Once we've set the stage, we can change the virtual host declaration for the default virtual host in apache. All we need is a few extra lines:
AliasMatch ^/((?!cgi-bin|icons).+)/sf/(.*) /usr/share/php5/data/symfony/web/sf/$2 AliasMatch ^/((?!sf|cgi-bin|icons).+?)/(.*) /var/www/localhost/htdocs/$1/web/$2 Options Indexes FollowSymLinks Order allow,deny Allow from all
The last thing is to ensure that your symfony project's .htaccess file redirects / to /index.php.
Conclusion
That should get a working development environment for multiple symfony projects up and running that allows easy access to each project as a subweb off of localhost.
Comments
Comments powered by Disqus