Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Symfony 1.3 Web Application Development
Symfony 1.3 Web Application Development

Symfony 1.3 Web Application Development: Design, develop, and deploy feature-rich, high-performance PHP web applications using the Symfony framework

eBook
$9.99 $25.99
Paperback
$43.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
Table of content icon View table of contents Preview book icon Preview Book

Symfony 1.3 Web Application Development

Chapter 1. Getting Started with Symfony

This chapter is an overview of the Symfony framework and how good it is to develop with. It will cover how Symphony conforms to the MVC pattern, the main features, general coding guidelines, and how to install it.

By the end of this chapter you will know:

  • About the MVC pattern

  • How Symfony incorporates the MVC pattern

  • How to install Symfony

Exploring Symfony

Symfony was released in October 2005 by Fabien Potencier who is the CEO of Sensio, which is a French web agency (http://www.sensio.com). After Fabien used the framework on several projects successfully, he decided to release the project under an open source license. Ever since its first release, the Symfony community has increased dramatically and continues to do so.

The community can be found at http://www.symfony-project.org/.

The framework

A framework is aimed at reducing the development time without the need to sacrifice maintainability, scalability, or quality. Symfony can take less than a day to learn, comes with many tools and classes, and is easy to install. This means the developer can spend more time developing the application. All of these reasons and many more are why Symfony has come about, and why it has maintained its place as one of the best PHP5 frameworks.

The current trends at the moment seem to revolve around agile development methodologies with groups of developers working on the same web application. Using the Symfony framework, developers are aided in writing structured and maintainable code. This is all down to the framework's strict implementation of the Model-View-Controller (MVC) paradigm and modulization.

"It aims to speed up the creation and maintenance of web applications, and to replace the repetitive coding tasks by power, control and pleasure."

More information about this project can be found at http://www.symfony-project.org/about.

The Model-View-Controller pattern

Many books go into the details of what the MVC pattern is and how it works. However, we will just look at the basic overview and how Symfony incorporates the pattern.

The MVC pattern is designed to split the presentation and business logic, and has a controller that manages the user's interactions between the two.

When you first use Symfony to generate the skeleton code for a new application and module, you can see exactly how Symfony strictly abides by the MVC pattern.

Controller

The controller is responsible for processing user events. The controllers in Symfony are split into several components.

  1. 1. It is the entry point into the application.

  2. 2. It determines what action is required to execute.

  3. 3. Loads the configurations.

  4. 4. Executes the filters.

One great feature about the controller being the entry point is that any time a site needs to go down for maintenance, the controller can simply be disabled. Creation of a new application in Symfony creates two controllers:

  • A controller for the production environment

  • A controller for the development environment

The difference between the two is the debug information and error displaying.

The controller calls an action, which is what drives the application. The action contains all of the application logic and has the ability to access everything from the request, sessions, authentication, and core Symfony objects.

Model

The model layer represents the applications data and the business rules used to manipulate and access it.

Symfony's model layer is split into two separate layers—an Object Relational Mapping (ORM) layer and a data abstraction layer. Of course, there are a few good PHP5 ORM and database abstraction libraries that already exist. Therefore, rather than reinventing the wheel, the framework incorporates the Doctrine ORM (http://www.doctrine-project.org/) which is the defualt ORM layer, with the option of using the Propel ORM (http://propel.phpdb.org). The second layer, being the data abstraction layer is handled by PHP Data Objects (PDO).

Database abstraction means database portability. Every database vendor will have a slight variant in their SQL syntax. Therefore, by moving your application to another RDBMS, a developer would have to amend certain queries. But with a database abstraction layer, this portability becomes transparent.

Object relational mapping turns database tables, rows, and different variable types into objects. As Symfony is written using OOP, it makes sense that the data is returned as an object.

At the moment, Symfony comes shipped with Propel 1.2 as it's default ORM. However, this whole ORM layer can be easily changed. For example, the ORM layer can be changed to Doctrine (http://www.phpdoctrine.org/).

Views

A view, which is commonly referred to as a template, is displayed to the user. These templates are completely separated from controllers and models. They mainly comprise of XHTML markup and presentation logic in the form of PHP tags. Although Symphony's template system has matured, the view layer can be replaced with another template engine, such as Smarty (https://smarty.php.net) through a plugin, for example.

Taking a look at the key features

We have looked at Symfony's implementation of the MVC pattern. Next, let's go over some of the features that Symfony has to offer in order to cut down development time.

Forms and validation

This is one of those repetitive requirements that a developer always has to face. Using Symfony, the development time is decreased due to the form subframework. There are two types of form:

  • Propel form is a form that is based on a database table(s). These forms persist the submitted data to the table(s) that they are based on. As part of the generation task(s), these forms are automatically created along with validation. Although we can easily customize both form and validation, the default forms are a great way to display an initial prototype.

  • Simple form is a form that doesn't persist data to the database. Although they are not generated, they follow the same approach as the Propel-based forms.

Plugins

One of Symfony's best features is its plugin architecture. So, many units of functionality can be written as a plugin and used time and again. The available plugins either help a developer in some way, or provide full, feature-rich applications. Looking at the plugin repository, numerous plugins have been submitted by the community and it continues to grow. You can visit http://trac.symfony-project.com/wiki/SymfonyPlugins to know more about Symfony Plugins. A few of the main plugins are:

  • sfGuardPlugin: Web asset management

  • sfSimpleBlog: Simple blog for your site

  • sfSimpleCMSPlugin: Create a CMS

  • sfLucenePlugin: Integrates the Zend framework's search engine

Internationalization and localization

Many web applications offer locale translations and services based on your locale. Symfony provides interfaces, standards, and localized helpers to make internationalization (i18N) and localization (l10N) simple.

There are two places where time is cut down. The first is by using XLIFF dictionary files for static template text. Wrapping sentences or words inside a special helper function will automatically do all the lookups in the dictionary files. Also, using a task on the command line, will do all of this for you. The second place is within the ORM layer, which provides additional methods for I18N lookups.

Generators

When writing a web application, more often than not, a backend administration area is needed to manage content. This can increase development time dramatically. Symfony has generators which when run from a task on the command line can scaffold forms on the front end and also backend administration forms. These forms are based on a model, just like when creating normal forms. Not only are the forms created, but also all of the code to provide a form with the ability to Create Retrieve Update and Delete (CRUD) records in the database. The backend-generated forms also use a theme to create better-looking forms.

Cache

Cache is the fastest method of retrieving information. In Symfony, templates, partials, components, and actions can all be cached to speed up the response times. Configuration of the cache is also governed by a configuration file. Although there are a few configuration YAML files, they are all converted into PHP arrays and cached the first time the application runs. By default the cache is stored on the file system, but a small amend to one of the configuration files can easily swap this to another caching mechanism such as memcache, for example.

Testing

Test-driven development is the key to bug-free and well-written code. Symfony provides the ability for unit and functional testing. Unit tests enable the developer to test functions and methods for input and output. While functionality tests helps the developer to test for functional issues that would be executed in the browser, Symfony has its own testing framework called Lime. This testing framework is useful for both unit testing and functional testing. All test output can be saved in the xUnit format.

Configuration files

By default, all the files are written in the YAML format (http://www.yaml.org/). When first run, the configuration is read and then written to cache as a native PHP array. Many of Symfony's features are customizable in the many configuration files.

As you can see, Symfony is a solid framework that contains many features, is dynamic, and more importantly, cuts down development time. Also, parts of Symfony can be extended, replaced with a plugin and provides a bridge for other frameworks, which we will look at later.

Exploring Symfony


Symfony was released in October 2005 by Fabien Potencier who is the CEO of Sensio, which is a French web agency (http://www.sensio.com). After Fabien used the framework on several projects successfully, he decided to release the project under an open source license. Ever since its first release, the Symfony community has increased dramatically and continues to do so.

The community can be found at http://www.symfony-project.org/.

The framework

A framework is aimed at reducing the development time without the need to sacrifice maintainability, scalability, or quality. Symfony can take less than a day to learn, comes with many tools and classes, and is easy to install. This means the developer can spend more time developing the application. All of these reasons and many more are why Symfony has come about, and why it has maintained its place as one of the best PHP5 frameworks.

The current trends at the moment seem to revolve around agile development methodologies with groups of developers working on the same web application. Using the Symfony framework, developers are aided in writing structured and maintainable code. This is all down to the framework's strict implementation of the Model-View-Controller (MVC) paradigm and modulization.

"It aims to speed up the creation and maintenance of web applications, and to replace the repetitive coding tasks by power, control and pleasure."

More information about this project can be found at http://www.symfony-project.org/about.

The Model-View-Controller pattern

Many books go into the details of what the MVC pattern is and how it works. However, we will just look at the basic overview and how Symfony incorporates the pattern.

The MVC pattern is designed to split the presentation and business logic, and has a controller that manages the user's interactions between the two.

When you first use Symfony to generate the skeleton code for a new application and module, you can see exactly how Symfony strictly abides by the MVC pattern.

Controller

The controller is responsible for processing user events. The controllers in Symfony are split into several components.

  1. 1. It is the entry point into the application.

  2. 2. It determines what action is required to execute.

  3. 3. Loads the configurations.

  4. 4. Executes the filters.

One great feature about the controller being the entry point is that any time a site needs to go down for maintenance, the controller can simply be disabled. Creation of a new application in Symfony creates two controllers:

  • A controller for the production environment

  • A controller for the development environment

The difference between the two is the debug information and error displaying.

The controller calls an action, which is what drives the application. The action contains all of the application logic and has the ability to access everything from the request, sessions, authentication, and core Symfony objects.

Model

The model layer represents the applications data and the business rules used to manipulate and access it.

Symfony's model layer is split into two separate layers—an Object Relational Mapping (ORM) layer and a data abstraction layer. Of course, there are a few good PHP5 ORM and database abstraction libraries that already exist. Therefore, rather than reinventing the wheel, the framework incorporates the Doctrine ORM (http://www.doctrine-project.org/) which is the defualt ORM layer, with the option of using the Propel ORM (http://propel.phpdb.org). The second layer, being the data abstraction layer is handled by PHP Data Objects (PDO).

Database abstraction means database portability. Every database vendor will have a slight variant in their SQL syntax. Therefore, by moving your application to another RDBMS, a developer would have to amend certain queries. But with a database abstraction layer, this portability becomes transparent.

Object relational mapping turns database tables, rows, and different variable types into objects. As Symfony is written using OOP, it makes sense that the data is returned as an object.

At the moment, Symfony comes shipped with Propel 1.2 as it's default ORM. However, this whole ORM layer can be easily changed. For example, the ORM layer can be changed to Doctrine (http://www.phpdoctrine.org/).

Views

A view, which is commonly referred to as a template, is displayed to the user. These templates are completely separated from controllers and models. They mainly comprise of XHTML markup and presentation logic in the form of PHP tags. Although Symphony's template system has matured, the view layer can be replaced with another template engine, such as Smarty (https://smarty.php.net) through a plugin, for example.

Taking a look at the key features

We have looked at Symfony's implementation of the MVC pattern. Next, let's go over some of the features that Symfony has to offer in order to cut down development time.

Forms and validation

This is one of those repetitive requirements that a developer always has to face. Using Symfony, the development time is decreased due to the form subframework. There are two types of form:

  • Propel form is a form that is based on a database table(s). These forms persist the submitted data to the table(s) that they are based on. As part of the generation task(s), these forms are automatically created along with validation. Although we can easily customize both form and validation, the default forms are a great way to display an initial prototype.

  • Simple form is a form that doesn't persist data to the database. Although they are not generated, they follow the same approach as the Propel-based forms.

Plugins

One of Symfony's best features is its plugin architecture. So, many units of functionality can be written as a plugin and used time and again. The available plugins either help a developer in some way, or provide full, feature-rich applications. Looking at the plugin repository, numerous plugins have been submitted by the community and it continues to grow. You can visit http://trac.symfony-project.com/wiki/SymfonyPlugins to know more about Symfony Plugins. A few of the main plugins are:

  • sfGuardPlugin: Web asset management

  • sfSimpleBlog: Simple blog for your site

  • sfSimpleCMSPlugin: Create a CMS

  • sfLucenePlugin: Integrates the Zend framework's search engine

Internationalization and localization

Many web applications offer locale translations and services based on your locale. Symfony provides interfaces, standards, and localized helpers to make internationalization (i18N) and localization (l10N) simple.

There are two places where time is cut down. The first is by using XLIFF dictionary files for static template text. Wrapping sentences or words inside a special helper function will automatically do all the lookups in the dictionary files. Also, using a task on the command line, will do all of this for you. The second place is within the ORM layer, which provides additional methods for I18N lookups.

Generators

When writing a web application, more often than not, a backend administration area is needed to manage content. This can increase development time dramatically. Symfony has generators which when run from a task on the command line can scaffold forms on the front end and also backend administration forms. These forms are based on a model, just like when creating normal forms. Not only are the forms created, but also all of the code to provide a form with the ability to Create Retrieve Update and Delete (CRUD) records in the database. The backend-generated forms also use a theme to create better-looking forms.

Cache

Cache is the fastest method of retrieving information. In Symfony, templates, partials, components, and actions can all be cached to speed up the response times. Configuration of the cache is also governed by a configuration file. Although there are a few configuration YAML files, they are all converted into PHP arrays and cached the first time the application runs. By default the cache is stored on the file system, but a small amend to one of the configuration files can easily swap this to another caching mechanism such as memcache, for example.

Testing

Test-driven development is the key to bug-free and well-written code. Symfony provides the ability for unit and functional testing. Unit tests enable the developer to test functions and methods for input and output. While functionality tests helps the developer to test for functional issues that would be executed in the browser, Symfony has its own testing framework called Lime. This testing framework is useful for both unit testing and functional testing. All test output can be saved in the xUnit format.

Configuration files

By default, all the files are written in the YAML format (http://www.yaml.org/). When first run, the configuration is read and then written to cache as a native PHP array. Many of Symfony's features are customizable in the many configuration files.

As you can see, Symfony is a solid framework that contains many features, is dynamic, and more importantly, cuts down development time. Also, parts of Symfony can be extended, replaced with a plugin and provides a bridge for other frameworks, which we will look at later.

Coding guidelines


One thing that I have learned in the past is to always establish coding guidelines. Following some of the eXtreme programming principles—namely, pair programming—I have learned that having a set of guidelines helps team integration and code readability.

Symfony-specific guidelines

These are some Symfony-specific guidelines:

  • One module is not for one page. The only time where this might be ruled out is if there is a strong possibility of the module being extended.

    For instance, if you have general footer pages, these could be a part of the general module. Also, grouping functionality allows code to be refactored into a plugin during development.

  • Application-specific settings should always go in the app.yml file.

  • When using a mail plugin for sending out emails, abide by the MVC pattern.

    That means use the action and templates rather than storing content inside a variable.

  • Keep PHP to an absolute minimum within templates.

  • Database table names should be plural and PHP models names should be singular.

Installing Symfony


There are three ways in which you can install and set up Symfony on your local system:

  • Using the sandbox

  • Checking out of subversion

  • Installing via PEAR

Version 1.3 was not released at the time of the writing this book, so I cannot provide you with the exact links to install it. However, I can point you in the direction of some more useful documentation located on the Symfony web site at http://www.symfony-project.org/installation and http://www.symfony-project.org/getting-started/1_2/en/.

The fastest way of setting up Symfony, especially for the first time, is to download the sandbox. The sandbox works straight out of box and contains the basic application already created for you.

The sandbox can be downloaded from http://www.symfony-project.org/get/symfony-stable.tgz 0.

If you follow the PEAR route, you can use that installation to create your own sandbox at http://www.symfony-project.org/blog/2009/06/10/new-in-symfony-1-3-project-creation-customization.

Note

For developing with Version 1.3, I used two methods to obtain a sandbox.

Checked out Symfony from SVN into a temporary folder:

>mkdir symfony_1.3 && cd symfony_1.3
>svn co http://svn.symfony-project.com/branches/1.3

Next I used the Symfony create_sandbox script to create a zipped up sandbox:

>data/bin/create_sandbox.sh

After running the command you will see the package being build. Afterwards, you will see two new files in the current folder, sf_sandbox.tgz and sf_sandbox.zip. You can extract either one and rename the folder from sf_sandbox to milkshake. Afterwards you can place this folder in your workspace folder.

Summary


In this chapter, we saw the MVC framework and an overview of some of Symfony's key features that help to save time on development. These features consisted of plugins, generators, internationalization, forms and validation.

We can see how simple it is to get Symfony up and running on our local computer. Being eager to start, get ready for the coming chapters.

Left arrow icon Right arrow icon

Key benefits

  • Create powerful web applications by leveraging the power of this Model-View-Controller-based framework
  • Covers all the new features of version 1.3 ñ many exciting plug-ins for you
  • Learn by doing without getting into too much theoretical detail ñ create a "real-life" milkshake store application
  • Includes best practices to shorten your development time and improve performance

Description

With its flexible architecture, the Symfony framework allows you to build modern web applications and web services easily and rapidly. The MVC components separate the logic from the user interface and therefore make developing, changing, and testing your applications much faster. Using Symfony you can minimize repetitive coding tasks, optimize performance, and easily integrate with other libraries and frameworks. Although this framework contains with many powerful features, most developers do not exploit Symfony to its full potential. This book makes it easy to get started and produce a powerful and professional-looking web site utilizing the many features of Symfony. Taking you through a real-life application, it covers all major Symfony framework features without pushing you into too much theoretical detail, as well as throwing some light on the best practices for rapid application development. This book takes you through detailed examples as well as covering the foundations that you will need to get the most out of the Symfony framework. You will learn to shorten the development time of your complex applications and maintain them with ease. You will create several useful plug-ins and add them to your application and automate common tasks. The book also covers best practices and discussions on security and optimization. You will learn to utilize all major features of this framework by implementing them in your application. By the end, you should have a good understanding of the development features of Symfony (for Propel as well as Doctrine editions), and be able to deploy a high-performance web site quite easily.

Who is this book for?

This book is for PHP web developers who want to get started with Symfony 1.3. If you are already using Symfony 1.0 or are new to Symfony, you will learn how to use it in the best way to produce better applications faster.Basic knowledge of Object Oriented design and ORM will be quite helpful.

What you will learn

  • Set up the foundations for a database-driven web site using Symfony
  • Create a list of products by accessing data from a database, paginate the menu, and then customize its look
  • Create formsófrom simple contact forms to complex onesówith user-defined fields using sfFormExtraPlugin
  • Send email notifications to the customers using PHP SwiftMailer library
  • Create quick development task plug-ins to save your development time and package them into your application
  • Configure and customize Symfony s admin generator to create a nice looking back-office
  • Secure your backend application with the Symfony authentication mechanism, leveraging the power of the sfGuardPlug-in security and authentication plug-in
  • Create an advanced admin panel with JavaScript that allows image files to be uploaded and thumbnails to be automatically generated
  • Enhance your search mechanism by using the JQueryAutoComplete Widget to add an auto-complete feature to it
  • Allow your users to choose their preferred language for display by introducing internationalization and localization to your application
  • Integrate a component from another framework into your application with minimum effort
  • Optimize the response time of your site by using compression and caching

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Sep 21, 2009
Length: 228 pages
Edition : 1st
Language : English
ISBN-13 : 9781847194565
Languages :
Tools :

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

Publication date : Sep 21, 2009
Length: 228 pages
Edition : 1st
Language : English
ISBN-13 : 9781847194565
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 76.98
Symfony2 Essentials
$32.99
Symfony 1.3 Web Application Development
$43.99
Total $ 76.98 Stars icon

Table of Contents

10 Chapters
Getting Started with Symfony Chevron down icon Chevron up icon
Developing Our Application Chevron down icon Chevron up icon
Adding the Business Logic and Complex Application Logic Chevron down icon Chevron up icon
User Interaction and Email Automation Chevron down icon Chevron up icon
Generating the Admin Area Chevron down icon Chevron up icon
Advanced Forms and JavaScript Chevron down icon Chevron up icon
Internationalizing our Global Positions Chevron down icon Chevron up icon
Extending Symfony Chevron down icon Chevron up icon
Optimizing for Performance Chevron down icon Chevron up icon
Final Tweaks and Deployment Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3
(1 Ratings)
5 star 0%
4 star 0%
3 star 100%
2 star 0%
1 star 0%
James Herrmann Dec 01, 2009
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3
I purchased this book around the beginning of November. Construction and print quality are both very good. From a writing standpoint, the book is easy to read and conversational. There are some typos (I've found around 10) but none of them are in code samples which is important. I'll be submitting these back to the publisher so later versions are corrected.For those learning Symfony, this book is a mixed bag. Beginning with the positives, you will learn the basic approach to developing in Symfony. Areas I particularly liked include instruction on project setup (chap1&2), forms (chap4) and optimization (chap9).On the downside, Propel is the ORM that is referenced throughout this text. There are virtually no code samples in regard to Doctrine. This is particularly egregious because Doctrine is the default ORM library for Symfony as of version 1.3. As Fabien Potencier (creator of Symfony) puts it, "As Doctrine is the future of symfony, we decided to make it the default choice when creating a new project". Don't assume the book contains code samples for both. It doesn't.Like myself, you may find yourself using the Symfony website/forums A LOT to get additional information on topics. This is because the book is somewhat light on details. I would liken it much more in-line with the Visual QuickStart books that Peachpit produces. The idea being, get something up-and-running quickly.The book does not cover Unit and Functional testing using the lime Testing Framework; a built-in library. This is a significant omission. Automated testing is an integral component of today's RAD programming frameworks (ala Rails).As for Symfony 1.3 specific information, they do a pretty good job. For instance, the use of csrf_secret for securing forms is discussed. However, 1.3 offers easy ways to use Swiftmailer to send emails. This is not covered. The old pattern is used.If you are going to use Propel and are a Symfony beginner, you'll be in good shape with this book. Otherwise, I'd say wait for 'Practical symfony 1.4 for Doctrine' or use the website's tutorials. The Symfony framework itself is a wonderful product. I've enjoyed using it immensely.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.

Modal Close icon
Modal Close icon