Hello, ZF conference (ZFConf 2010) will take place in Saint Petersburg (Russia) at the end of March. I am one of this event's organizers so I would like to discuss the topics of the expected topics with you.
Our speakers are deeply interested in your feedback. On its basis they can modify the content of their reviews. For russian developers which are not aware of the event yet: - http://www.zfconf.ru - additional discussions on topics are available at the forum: http://zendframework.ru/forum/index.php?topic=2281.0 Here is the list of the expected topics (see the detailed theses for each of them below): - Proposal Lifecycle - Zend_Search_Lucene in the Details - Performance of Zend Framework Applications - Zend Framework and MVC, «Fat» Model - Fotostrana.ru: Prototyping Project with Zend Framework - Using Message Queues in Day-to-Day Projects (Zend_Queue) - Zend Framework and Doctrine - ZF and Multilingual - History of e-Shtab.ru - What News Zend Framework 2.0 Brings to Us? - jQuery and Dojo Toolkit JavaScript-frameworks Integration with Zend Framework === Proposal Lifecycle === Alexander Veremyev (Zend Technologies, Zend Framework Core Developer) This presentation is intended to describe Zend Framework proposal lifecycle in details to give clear understanding of the steps required to get proposal included into ZF. It’ll touch on proposal lifecycle actors, proposal lifecycle steps/proposal states, ZF repository areas created to support proposal process and other things. In addition to this some recommendations helping to promote your proposal quickly will be given. === Zend_Search_Lucene in the Details === Alexander Veremyev (Zend Technologies, Zend Framework Core Developer) Presentation gives a complete description of a Zend_Search_Lucene full-text search component usage. It’s oriented to new Zend_Search_Lucene users as well as to experienced users. The following aspects will be described within presentation: * history of component creation; * component purpose; * index format details (including factors affecting performance); * indexing and indexing performance; * searching using queries and query construction API; * search results pagination. Presentation also describes techniques of improving searching performance for different modes of component usage. === Performance of Zend Framework Applications === Alexander Mahomet (ZendFramework.ru Community, Founder) The main goal of this report is to show how certain techniques can improve performance of applications that use Zend Framework. I will create demo application and will apply these techniques to it. Plan of report: Problem definition: * Overview of demo application; * Overview of testing environment; * Overview of instruments for testing; * Overview of parameters we should test, measurements before testing. Overview of techniques (after each item — new measurements): * Methods which are not directly connect to Zend Framework (accelerators, setup of web server); * Deleting of require* from Zend Framework; * Joining of Zend Framework classes to one big file; * Autoloading and Zend_Loader; * Caching of objects (Zend_Config, Zend_Locale, Zend_Acl, Zend_Navigation), caching of pages and blocks, caching results of database queries, etc; * Memcache; * Recommendations from Zend Framework team; * How Zend_Server can help building high-load applications. Comparison Zend Framework performance with other popular PHP frameworks. === Zend Framework and MVC, «Fat» Model === Alexander Steshenko (Norada Corporation, PHP programmer) 1. MVC pattern in details * Controller, View * Model is the application logic. Model isolation from other parts of MVC triad 2. MVC implementation in Zend Framework * Zend_Controller_Action * Zend_Controller_Front * Zend_Controller_Dispatcher_Standard * Zend_Controller_Action_Helper_ViewRenderer * Zend_View 3. Thin / Fat Model * What is thin Model, why it does not fit MVC pattern, code samples * «Fat» model is every fragment of the application and the whole application itself * Domain model * Most often used data access patterns and approaches for modeling application objects * Code samples * Data access design patterns flexibility problems * Benefits of Data Mapper — data access decomposition, easy refactoring of every part of the application * Service layer, code samples 4. General tips and advices * Automated testing * ORM tool * Good OOP, software design patterns === Fotostrana.ru: Prototyping Project with Zend Framework === Leonid Zhavoronkov (Fotostrana.ru, Teamlead) The history about Zend Framework usage in highload-project (12M hits, 200K hosts): * Project's history and key features * Choice of ZF as a platform for a startup: benefits and drawbacks * Project's platform evolution * The current architecture of the project and plans for the future === Using Message Queues in Day-to-Day Projects (Zend_Queue) === Denis Baklikov (Obnovlenie, Web Developer) 1. What is message queues? * MQ history. JMS * Advantages of using message queues * Example usage of message queues. Bad examples * Messaging patterns 2. Zend_Queue overview * Interfaces overview * Adapters overview * Using different adapters. Best practices o array o db o mq server * Zend_Queue development. Next steps 3. MQ servers overview * List of MQ serves (main idea: show people large number of servers they can use) * Features of messaging servers (ActiveMQ, MemcacheQ, ...) 4. Projects using message queues * Classic example — delayed emails sending * Real time statistics processing * Social networks. Image uploading example === Zend Framework and Doctrine === Stepan Tanasiychuk (Stfalcon.com Web Studio, Chief) 1. Connection of Doctrine to ZF project * I will show the examples of code * I will tell which options are responsible for what 2. Script for work with Doctrine_Cli * I will show an example of work with Doctrine Cli * I will tell how to create your task for Doctrine Cli 3. Generation models and mappers with yaml schemes. Inheritance. Migrations * I will show the example of some simple circuits with binding and inheritance * I will show our inputs for the models'autogeneration in modular application that correspond to standard coding of Zend Framework 4. Adapters for Zend_Paginator and Zend_Auth * I will tell how to work and to show code 5. Caching of query results * I will tell and show how to connect it and how to work with it === ZF and Multilingual === Stepan Tanasiychuk (Stfalcon.com Web Studio, Chief) 1. Adding language in the URL using a custome router (author — Konstantin Yurevich), a standard router and hostname router. Pluses and minuses of each approach * I will show an examples of routers and examples of simple applications * I will speak about pluses and minuses this routers in terms of SEO 2. Plugin or action helper to initialize translator * I will show code examples 3. Why gettext? Nuances and hacks in the implementation of multilanguage through gettext * I will show how convenient to add gettext through poedit and explain why I think other ways of localization inconvenient * I will tell you that we do to translate validators messages 4. Caching * I will show code examples === History of e-Shtab.ru === Anatoliy Larin (e-Legion, Web Developer) Architecture: * Zend_Application, Zend_Config, Zend_Controller, Zend_Router * MySQL, Zend_Db_Select, Zend_Db_Table, Zend_Db_Row Table and Row have partly performed the Model role. * Smarty We gave up using PHTML because of its extreme flexibility, posibility to change the data right in the template. * Zend_Feed, Zend_Pagination, Zend_Openid Problems: * Smarty autoescaping The programmers' forgetfulness became a problem, we missed out too many XSS holes. The problem was solved via patching the Smarty by adding variables autoescaping functionality. * Console jobs Zend Framework does not provide instruments for creating console tasks (crontab, management tasks). * A lot of problems related to character encodings * Unintuitive URL-Router (upside-down) * Error in long email subject in Russian We had to spend a few days, to solve the issue. http://framework.zend.com/issues/browse/ZF-1688 (07.07.07—18.01.09) * Notice, warning instead of Exceptions At first we paid no attention to them, which led to bad consequences a few times. As a result, we haven't elaborated correct coding style, which we got in other programming languages, where the bad-quality code is denied by compiler / interpreter. * Reusability Few parts of code we were able to use again without a pain. A lot of things were created by copy'n'paste of existing code. === What News Zend Framework 2.0 Brings to Us? === Nadezhda Blinova (Wizartech, Web Programmer), Georgy Turevich (Wizartech, Lead Web Programmer) The following changes will be examined in the review: * Architectural \ Design Changes * MVC Implementation * Plugin Architectures * Other components (Zend_Acl, Zend_Controller, Zend_Controller_Router, Zend_Form, Zend_Session, Zend_Soap, Zend_View, Zend_Mail) In the course of the review preparation the latest details will be obtained from ZF developers. === jQuery and Dojo Toolkit JavaScript-frameworks Integration with Zend Framework === Georgy Turevich (Wizartech, Lead Web Programmer) During the presentation we will take a detailed look at different aspects of the integration and examine some examples: 1. ZF + jQuery and ZF + Dojo Toolkit features overview 2. jQuery * Setup jQuery Core and jQuery UI enviroments * Automation work with jQuery UI-components * Working with "autocompletion" * Zend_Form customization with jQuery UI * Looking to the future! 3. Dojo Toolkit * Setup Dojo-enviroment * Automation with dijit's * Working with "autocompletion" * Zend_Form customization with Dijit * Generation of data in specialized format (dojo.data) * Automation Deployment Dojo Toolkit * Looking to the future! 4. Several practical demontstrations Best Regards, Georgy Turevich
