Category: PHP and front-end web programming
The PHP ecosystem was for a long time known for an abundance of frameworks and libraries. As it became increasingly mature, a group of indisputable technological leaders emerged, among them Zend Framework, Symfony, CakePHP and CodeIgniter. The wide-reaching changes in PHP – especially namespaces introduced in 5.3.0 – led to a second generation of these popular frameworks. This time, there is only one unquestionable leader, Symfony 2. It would hardly be an overstatement to claim that familiarity with SF2 and its idioms is crucial for a modern PHP programmer.
Symfony 2 is not only the most popular framework for modern web-based PHP applications, but also a comprehensive development philosophy, consisting of:
- building applications and managing autoloading with a composer,
- Symfony 2 way of modularizing applications and configuring the modules,
- injecting dependencies,
- handling the view layer with Twig library,
- handling relational databases with Doctrine 2 library,
- using JSR-303 validation,
- using Symfony 2 built-in forms components.
Our training covers all Symphony 2 components mentioned above – and shows how they interact in a finished product. We impart both practical tips (from programmers who use SF2 in their daily work) and theoretical groundwork, such as design patterns and reasons behind design decisions made by SF2’s authors. The deeper understanding of the framework and its philosophy allows training participants not only to create modern web applications, but also to easily adapt them to changes that will be brought by future versions of the framework.
- Symfony 2 – an overview
- architecture of a typical application
- fundamental and additional components (Request, Response, HttpKernel, Controller, Service Container)
- modularity, most commonly used bundles
- installation and configuration of a typical SF2 application; using the composer tool
- Basic components of an applications
- Twig template engine
- templates, template inheritance
- tags and filters; custom Twig extensions
- Twig and caching
- bundling templates
- active templates; calling the controller from inside the template, client- and server-side
- routing and controllers
- calling actions: URL and parameters
- services provided by the standard controller
- session handling: normal sessions, flash sessions
- forwarding and redirecting
- displaying templates
- error handling
- Twig template engine
- Forms and validation
- JSR-303 and its Symfony implementation
- a form and its model; FormBuilder and typical use cases
- native and custom field types (e.g., text fields, buttons, calendars, combo boxes…)
- validation and forms: handling forms, guessing the field type
- Twig and forms: form helper, custom themes, automatic and manual form display
- complex models: embedded forms, collections of embedded forms, model transformers
- dynamically modified forms
- protection against CSRF
- Authorization and authentication
- authentication configuration – users, groups, roles
- accessing application modules: securing paths, methods and controllers
- accessing data
- fundamental ACL (Access Control Lists) and Voters strategies
- Doctrine 2
- ORM models and their consequences: Active Record, Transparent Persistence
- workflow, design patterns (unit of work, identity map, repository / dao)
- configuration and project integration
- generating entities from database and databases from entities
- mappings: manual creation and modification:
- entities, primary keys (simple and composite), primary key generators
- simple fields and associations: uni- and bidirectional associations, owning and inverse side
- working with entities: adding, removing and modifying data in the database
- queries: Doctrine Query Language, Criteria, repositories
- efficiency and optimization – lazy and eager relation loading, loading additional data with queries and relations, paging strategies, operation cascading
- Advanced topics
- registering and using services, Service Container; alternative solutions: YAML, XML, code
- direct configuration and Container Extension configuration
- Expression Language
- services and their dependencies – dependency injection (constructor, setter, property)
- services as controllers
Audience and prerequisites
The course is designed for PHP programmers who feel somewhat comfortable with the fundamental parts of the language and are familiar with class, method and object syntax. Furthermore, familiarity with basic HTML, CSS and SQL is required, but advanced object-oriented programming techniques and design patterns are not required.
Course participants receive completion certificates signed by ALX.
- Web developer (PHP)
- Advanced Web Developer (PHP, JS)
- HTML and CSS
- CMS Joomla
- AngularJS and Single Page Applications
- PHP for programmers
- Zend Framework
- Preparation to Zend Certified Engineer exam
- Zend Framework - supplemental training for the ZFCE exam
There are currently no entries
Enter your e-mail address and we will notify you about future dates
- Online (English) – your home, office or wherever you want
- Warsaw (English) – Jasna 14/16A
- any other location (London, UK, EU) on request
Open training groups are no larger than 8 participants.
Private training can be conducted for groups of any size, according to the Customer's preference. To assure high quality and good learning environment, the group size should not exceed 12.
On-demand training costs and registration
The prices provided in the general tables cover the cost of an open (public) training for one person.
In the case of an on-demand training at the Customer's premises, you are required to provide the necessary facilities (room, computers, projector) and we will send an instructor to run the training. The price for a session is calculated for the whole group.
The cost does not change significantly along with the number of participants. There is no minimum number of participants but we recommend no more than 10-12 people because the training becomes much less effective with a bigger group..
The cost of an on-demand training consists of:
- the base training cost, plus
- travel and accommodation charges for the instructor
The base price of an on-demand training varies, but it is usually around the price of an open training for 3-5 persons (regardless of your group size).
The typical travel and accommodation price for the EU/Schengen zone is under 1250 GBP (1500 EUR) for a 5 day session. We do our best to keep it as low as possible in your location.
The payment can be in GBP or EUR, whichever you prefer. The quotation we will send you with the exact amount in your currency will be valid for 3 months, regardless of any changes in the exchange rate.
For more information, or to register to a group, please contact us at email@example.com and tell us know:
- the course(s) that you are interested in,
- your location,
- your preferred dates,
- the number of people you wish to train,
And any other questions that you may have.
We can also customise the training program of any of our trainings (or create a new one) according to your needs – whether you want to focus on particular solution used in your company, include material concerning a technology we do not usually cover, or create a tailor-made training.
For individual persons for whom all scheduled open training is inconvenient, we offer individual consultation. Virtually all of our training courses are available as such.
During individual consultations, while it can be a direct equivalent of a group training in terms of subject covered, we can also provide more than that – we can solve problems, help choose appropriate solutions and provide advice on the most effective use of chosen tools.
The price includes:
- course materials,
- snacks, coffee, tea and soft drinks,
- course completion certificate,
- one-time consultation with the instructor after course completion.