So, I want to check out Symfony2 by building a project.
The state of web development is a very unique one. To turn out higher end pages in a group environment and serve them to a large audience, you need to have studied more than one technology. I am guessing knowledge from trivial to intermediate is required in 15+ technologies. It seems like one thing requires another. And another thing requires another after that … Then to simplify another task, you need to learn a tool for it. Which probably requires an extra technology or tool again.
Gone are the days when you learn HTML & PHP. Then later spend 10 minutes learning CSS. Poof, magic webpage on a free server. Since I want Symfony 2. I decided to host my own server, for various reasons. Increasing the load to learn. You can get generic installs in minutes for most of these individually done. To customize one though, you need to learn more. In order to stack multiple technologies you need a better understanding of where they interact.
I head over to Sensio Lab’s quick tour page. Link
- Symfony2 being a framework of PHP, means I need PHP served. According to the tutorial, PHP 5.4 is required for this version of Symfony 2.
- To serve web pages, I need a web server.
- I also need a database to house my information for the Symfony2 framework to act against.
So, to kill three birds with one stone … I downloaded a “WAMP” project. Which is Windows / Apache / MySQL / PHP.
One I get WAMP, I have to setup the windows shell to include PHP commands.
Then I have two options.
- directly download the Symfony 2 install file and tell PHP to install it. install the Symfony2 framework
- I can setup to use Composer to manage my dependencies, which will also handle installing Symfony 2 for me. Note that composer installs with windows use a fairly simply executable, but manual installs are another concise book of learning.
At this point, if WAMP or the Symfony 2 built in service is running on another PHP server, I can browse to “localhost:8000” to find my configuration page and setup my SQL database. Assuming I have a database server running somewhere to connect too (thus WAMP).
One more install chain … backup / version tracking.
To get good version tracking and backup, I use git. If you want free hosting, here’s a link to walk through of free hosting by Fort Rabbit. Link
Note: At some point in here, it is recommended that, if you are going to use Git, you throw an ignore file for the “Vendors” directory. Link
In git, they have a windows installer. This is nice because it customizes the environmental shell to include commands globally for Git. They also take care of secure certificate setup for you.
Note: Some people recommend you install Git first, then do the rest.
Let’s setup fast webpages.
Following this, once developing pages, you want a cache accelerator which Symfony 2 kind of sort of has already in, but theirs does not sit inside the stack supposedly … I’ve never verified this, but in case so you can explore: Link
The most recommended memory cache I heard of is MemCached for databases. Link
This gentleman hosted a link with a neat little check list for Symfony 2. Link
At this point, included on the check list are some great points. You have a running, usable server setup.
Recommended for groups is running in virtual environments…this normalizes the running environment as the program doing the virtual environment supplies anything needed, rather than finding underlaying OS tools not working. This requires vagrant (Link) and possibly virtualbox (Link).