Web Technology Solutions Class: PHP Web Application Frameworks Date : 3/05/2013
Tonight Final Review Intro to PHP Frameworks Sample CakePHP App Lab
Lab Preview Application Development Registration Feature Login\Logout Maintain State CRUD Publish XML and RSS
The Final Project
Final Project Details What is it? A Web App Use custom HTML, CSS, JS and PHP MySQL DB provided for you.
Final Project Details What are the deliverables due at the end of the course? The Final Project Report Final Project Code Documentation Functional Web Application
Final Project Report An intro paragraph describing your app. one page summary describing lessons learned during design\development phases one-two page commentary on effectiveness of agile development and the prototype process.
Final Project Documentation Requirements Document Interaction Design Document Application Architecture Drawing
Final Project Documentation Requirements Document document that details the functionality of your app. Features Described. Cause and Effect plus expected outcomes from user interaction.
Final Project Documentation Interaction Design Doc Wireframes Interaction Flow Model
Final Project Documentation Application Architecture Drawing Show your application stack \ tiers
Final Project Review Final Project - Web App (link) registration feature login logout admin ability to create\read\update\delete (CRUD) Maintain State throughout app (cookies\sessions) XML and RSS feeds Valid XHTML and CSS design
Final Project Review Final Project - Web App (link) registration feature (week 6) login logout (week 7) admin ability to create\read\update\delete (CRUD) (week 4-5) Maintain State throughout app (cookies\sessions) (week 7) XML and RSS feeds (week 8) Valid XHTML and CSS design
Presentation This mirrors real world client reviews, especially in agile. Make sure your application is working ahead of time. Stand in front of class and walk us thru what your app does. Demo each requirement. If there is a bug, try to skip over it.
PHP FRAMEWORKS
PHP Frameworks What is a framework? code that helps you write apps faster. defines a rigid development workflow implies that you code to a standard supplies helpers to aid in rapid development
PHP Frameworks What makes a good framework? well over 20 style of PHP frameworks (much to choose from) must be easy to learn simple to use intuitive to work with easy to extend and modify (must be stable) aid in rapid development and maintenance. must have a dev community
PHP Frameworks 10. WACT (component toolkit) 9. Seagull 8. Prado 7. PHPDevShell 6. Zend Framework 5. CodeIgniter 4. Symfony 3. Yii 2. Kohana 1. CakePHP
PHP Frameworks 10. WACT (component toolkit) 9. Seagull 8. Prado 7. PHPDevShell 6. Zend Framework (recommend) 5. CodeIgniter (recommend) 4. Symfony (recommend) 3. Yii (recommend) 2. Kohana (recommend) 1. CakePHP (recommend)
Why Use One? Active, friendly community Flexible licensing Compatible with versions PHP 5.2.6 and greater. Integrated CRUD for database interaction. Application scaffolding. Code generation. MVC architecture. Request dispatcher with clean, custom URLs and routes. Built-in validation. Fast and flexible templating (PHP syntax, with helpers). View Helpers for AJAX, JavaScript, HTML Forms and more. Email, Cookie, Security, Session, and Request Handling Components. Flexible ACL. Data Sanitization. Flexible Caching. Localization. Works from any web site directory, with little to no Apache configuration involved. Fast and flexible templating (PHP syntax, with helpers).View Helpers for AJAX, JavaScript, HTML Forms and more.Email, Cookie, Security, Session, and Request Handling Components.Flexible ACL.Data Sanitization.Flexible Caching.Localization.Works from any web site directory, with little to no Apache configuration involved.
MVC A software design pattern that allows separation of data (model) and the user interface (view). Model (Data Layer) database logic. data wrappers. security. View (user interface) Renders the model into a form suitable for interaction, typically a user interface element Controller (manages interactions) Processes and responds to events, typically user actions, and may invoke changes on the model.
CakePHP Some of the things Cake does so you don’t have to: eases creation of standard content management functionality (adding, editing and deleting) uses template-like Layouts and Views to separate logic from presentation validates form fields automatically escapes data saved to the database (to prevent SQL injection attacks) includes callbacks (eg do an action before or after save) allows for both test and production databases
CakePHP in Action Using cakePHP’s scaffolding to create a simple webapp that tracks bookmarks 1. Set up your database (use db conventions) 2. Set up your model. 3. Set up your controller. 4. Set up view (optional)
Lab & Next Week Final Project - Get’r Done! See you Tuesday!