Presentation of Improvements for PHP Programmers, Based on Symfony Framework. Creation of Example Portal and Description of Used Technology

INTRODUCTION Presented technology was picked because of common use of PHP by the internet application programmers. Symfony is young project based on many other mature PH P libraries which were adopted and modified to act as one application. Symfony is complete framework designed to optimize the process of writing the internet application using the most of its capabilities. Presented improvements affect the structure of the code as well as the website interface.

TECHNOLOGY Symfony framework brings many improvements and standards that raise the quality of application. Here are some of the features: Basic features  Easy installation and configuration on all platforms  Database engine-independent  Simple to use, in most cases, but still flexible enough to adapt to complex cases  Compliant with most web best practices and design patterns  Stable release  Easy to extend, allowing for integration with other vendor libraries Automated Web Project Features Most of the common features of web projects are automated within Symfony, as follows:  The presentation uses templates and layouts that can be built in HTML. Helpers reduce the amount of presentation code to write by encapsulating large portions of code in simple function calls.  Forms support automated validation, and this ensures a good quality of data in the database  Output escaping protects applications from attacks with corrupted data.  The cache management features reduce the server load.  Authentication and credential features ease the creation of restricted sections and user security management.  Routing and smart URLs make the page address search-engine friendly.  Lists are more user-friendly thanks to automated pagination, sorting, and filtering.  Factories, and plug-ins, provide a high level of extensibility.  Ajax interactions are easy to implement thanks to one-line helpers that encapsulate cross -browsercompatible JavaScript effects. Development Environment and Tools Symfony can be entirely customized. It provides, by default, several development environments and is bundled with multiple tools that automate common software – engineering tasks:  The code-generation tools are great for prototyping and one-click back-end administration.  The unit and functional testing framework provides the perfect tools to allow test -driven development.  The debug panel accelerates debugging by displaying all the information the developer needs on the page he’s working on.  The command-line interface automates application deployment between two servers.  Live configuration changes are possible.  The logging features give administrators full details about how the application is working

FUNCTIONALITY In assumption the auction system s hould give the user functionality to do two things. First one is to set an auction and the second one is to add an offer to existing auction. The main page of the user application contains three parts: header, sidebar and content. Content presents the results of every action. For the index page, action shows the list of the newest auction, containing few basic information’s about every auction. Title of every auction is a link to auctions page, which is the action displaying details about the desired aucti on. Top of the page contains information’s about the price, author and time reaming to finish. Under the table with basic data, there is a list of all criteria’s that offer should comply with. Criteria’s are displayed in groups provided with pictures to increase readability. Below the criteria’s there is a description of auction. Last position is the list of all offers. Right sidebar contains short information’s about the user and a category tree. Both of these elements can disappear regarding on the part of website user is using Person having an account in the system can place unlimited number of auctions, in every category. Procedure of setting up an auction is composed of several actions. First of all user should pick a category, that auction should be placed in. In the next step portal shows the list of available groups of components, and basket holding the auctions parameters. The basket is understood as a list of components displayed in the frame, including buttons to interact with the content of bask et. Groups of components are represented by icons with descriptions, being links to pages with its components lists. Page with components looks exactly like the page with groups, except that icons can be dragged and dropped on the basket area. After dropping an component over the basket popup window appears in which user can add parameters. Parameters are a criteria’s that offer must comply with lined up in few types allowing to compare offers between each other. Every parameter is equipped with weight f ield allowing to increase or decrease the influence of given parameter on offer value. In other words weight lets differentiate the importance of given parameter. After defining all parameters, user can go to next section allowing to set final settings. U ser must provide a title of auction, price, description and length of auction in days. Description fields is provided with rich text editor, allowing to add some formatting to text. Date selector is nice looking calendar, open after pressing the button. Set up auction is showed in the list of auctions from the selected category, and also in the list user auctions. Shortened list of auctions contains the auction title, user name, offer count and price interval. Second most important function of the applicat ion is to let user participate in auction, by setting their offers in existing auctions. When the authenticated user selects the desired auction, a list of form fields will be displayed to him, allowing type in his offer parameters. Every field must be fil led in order to put an offer. Offers are sent to server using AJAX communication, where it is verified. Result of verification is showed as the alert, and depending on verification status new offer is added or error fields are highlighted in form. All offers presented to auction owner have details link, opening popup window with all parameters provided by bidder. Portal is equipped with RSS channels, that allow user to track changes, and new auctions. Second part of the application is designed for administrators to manage the entire project. By default admin application launches the auction module, giving ability to list, sort, search, edit and delete auctions. The list of items provides links for editing the auction, or sorting results by pressing tale headers. Sorting order may be changed from ascending to descending. List is provided with filter box, allowing to filter result according to given fields. Fields can be filled with search text or select from the list of options. Same construction schema is shared among other auto generated modules like: user list or components list. Completely other approach is presented by category tree module which is implementing drag and drop technique aiming to easy the tree structure modification.