Installing … chains of knowledge … Dreams of Symfony 2

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.

Blah!

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

Pre-work:

  1. 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.
  2. To serve web pages, I need a web server.
  3. 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.

  1. directly download the Symfony 2 install file and tell PHP to install it. install the Symfony2 framework
  2. 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).

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s