Advertisment

Manage PHP Projects with Symfony

author-image
PCQ Bureau
New Update

We all know how PHP has revolutionized the Web application development and
how easy and convenient it is for developers to build dynamic Web applications.
However, when it comes to developing projects in enterprise context, a developer
has to deal with a lot more overhead, which may vary from directory structure to
testing, debugging and documenting the project. Symfony is a Web application
framework written in PHP that aims to give developers an immediate head start.
With Symfony developers need not worry about infrastructure as it takes care of
the foundation, a developer can immediately begin writing code for Web
applications.

Advertisment

Direct Hit!

Applies To: PHP Developers

USP: Speed up Web project creation and maintenance

Primary Link: www.symfony-project.org Search Engine

Keywords: symfony, web framework, php

About Symfony

Symfony is a Web application framework for PHP5 projects. It focuses on building
Web applications in an enterprise context. This means, it is a full-stack
framework comprising of libraries of cohesive classes written in PHP. Symfony
follows the MVC (model-view-controller) paradigm and integrates several features
that facilitate the development of Web application such as code generation,
templating, internationalization, smart URLs, caching, etc.

In gist, Symfony is a collection of functions that provide advanced
interfaces to the most complex tasks that Web developers need to write
regularly. To start off, it creates the foundation of the project with all
database connector information and directory structure and leaving the Web
developer to code for the frontend straightaway. It is an ideal framework for a
group of developers as each member of the group will know exactly where to find
everything.

Advertisment

Getting started

What makes Symfony easy to install on any configuration, be it Windows or
Linux, is that you have to deal with a very few prerequisites. All you need is
PHP5 and a Web server installed on that platform. In this article for
demonstrating how to start using Symfony, we will use WampServer to have an
environment for creating and deploying Web applications based on PHP, MySQL and
Apache Web server on a Windows platform. The latest build of Symfony is version
1.4.1 and can be downloaded from the URL given in the Direct Hit box.
Alternatively, we can have Symfony bundled with PHP installation using PEAR. In
this demo, we'll be using the latter technique as it will help you in getting
the latest build of Symfony, since there are constant updates being done to the
Symfony project with new releases having  bugs fixed.  Also ensure that the
environment variable PATH has PHP bin directory path listed, so that you can
have access to PHP under command line.

When creating a DomainService class you must enable the entities, their
editing and metadata generation.

Enabling PEAR

PEAR (PHP Extension and Application Repository) is a framework and
distribution system for reusable PHP components. The PEAR package is packed with
the PHP distribution but is not enabled. To enable PEAR for your PHP
installation; go to the PHP installation directory from Windows command line (in
our case it will be C:\wamp\bin\php\php5.2.9-1\). From this location run the go-pear.bat
file. Upon execution it will prompt you that you want a system-wide PEAR
installation or local copy, by default it is system installation. After that it
will prompt for suggested directory listing and later it will prompt for
appending the changes to php.ini configuration file. Upon completion, it will
add the PEAR variables to the registry and now you are set to install Symfony.

Advertisment
The generate:project command generates the default structure of directories
and files needed for a Symfony project with the main directory having the
same name as that of project's.

Installing Symfony

As we are installing Symfony component to PHP through distribution system
using PEAR, we will pass the channel information from where the component can be
installed. Type the following in the command line under your PHP installation
folder:

C:\..PHP Dir..>pear channel-discover
pear.symfony-project.com

Advertisment

To install the latest release of the Symfony, type the following command:

C:\..PHP Dir..> pear install symfony/symfony

This will download the latest build of Symfony from the
site's repository and install that. Obviously, an active Internet connection
would be required for this.

Advertisment

Symfony project

Once the Symfony has been installed, you can start your PHP project. Go to
the root directory of your web server and create a folder, say pcqdemo. This
folder will be our project folder. Now from command line, go under this
directory and type the Symfony's project generation command having syntax as
generate:project PROJECT_NAME:

C:\wamp\www\pcqdemo>generate:project
pcqdemo

The generate: project command creates the default structure
of directories and files needed for a Symfony project. Now we need to configure
for database connectivity. The Symfony framework supports almost all PHP Data
Object supported databases like MySQL, SQL Server, Oracle, etc. and along with
that it comes packaged with two ORM tools: Doctrine and Propel. By default,
Doctrine is enabled for every Symfony project. The configure:database command of
Symfony is all that is required to establish the required connectors. It accepts
three parameters: the data object's DSN, username and password to access the
database. For our demo project we will create a database in MySQL having name as
pcqdata. The following command configures the database connections for the
project:

Advertisment

php symfony configure:database "mysql:host=localhost;dbname=pcqdata"
root password

Now once the project directory structure and database
connections established, you can start creating the frontend application for the
project. With generate:app command the frontend for the project can be created:

php symfony generate:app frontend

Advertisment

Based on the application name given as an argument, in our
case 'frontend', the generate:app task creates the default directory structure
needed for the application under the apps/frontend folder and will also set the
necessary write permissions for the required directories. The index.php files
has been created under the web folder of the project and now we can start
applying the logic to create the web application. Now you can access the demo
project by navigating to project's URL, i.e. http://localhost/pcqdemo/web. Later
on you can change the httpd.conf file of Apache Web server to place an alias for
the project so that it can be conveniently accessed.

Conclusion

Symfony provides development architecture and tools for developers to build Web
applications faster, and to host and maintain them without any problems. You can
have more information on Symfony installation from the downloadable package from
the URL provided in the Direct Hit box.

Advertisment

Stay connected with us through our social media channels for the latest updates and news!

Follow us: