1 / 22

The PHP 5 “for developers” Rapid Application Development Framework Make A Byte, inc

The PHP 5 “for developers” Rapid Application Development Framework Make A Byte, inc. What is AgilePHP?. PHP 5 rapid application development framework. Encourages industry standards and best practices during development.

wirt
Download Presentation

The PHP 5 “for developers” Rapid Application Development Framework Make A Byte, inc

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The PHP 5 “for developers” Rapid Application Development Framework Make A Byte, inc

  2. What is AgilePHP? • PHP 5 rapid application development framework. • Encourages industry standards and best practices during development. • Incorporates and supports “agile” software development methodologies where possible. • 100% Object Oriented (OOP) and introduces easy to implement Aspect Oriented Programming (AOP) features. • Enables PHP developers to build very robust, highly structured rich internet applications in a very short time period. • No complicated or home-grown templating system to learn. Rely on the web technologies you already know and work everywhere you go.

  3. What’s a Framework? • A framework is a basic conceptual structure used to solve or address complex issues. • A software development framework is a re-usable design for a software system (or subsystem). It may include support programs, code libraries, a scripting language, or other software to help develop and glue together the different components of a software project. Various parts of the framework may be exposed through an API. http:://en.wilipedia.org/wiki/Framework

  4. AgilePHP Features • Model-View-Control (MVC) • Object Relational Mapper (ORM) • Identity Management • Scope Management • Annotations • Interceptors • Client Side Remoting • Dynamic Form Builder • Cryptography • Internationalization • Validation • File Upload • PHPUnit Integration • OpenAppstore Integration

  5. What’s Model-View-Control?

  6. AgilePHP MVC XSLT Automation

  7. What’s an Object Relational Mapper (ORM)?

  8. Identity Management • Create/Update/Delete users. • Role based access (programmatically or by using interceptors). • Handles sending forgot password emails and generating new passwords. • Integrated with AgilePHP SessionScope component. • Integrated with AgilePHP RequestScope component to guard against XSS and CSFR attacks. • By default stores username, password, created, last login, role, and session id. Can be easily extended to support custom attributes.

  9. Scope Management • “Scope” refers to a context within the web application. • “SessionScope” stores user specific data in a database where its state is kept between page requests. This makes clustering your application very easy and gives developers a secure means of accessing session data. • “RequestScope” helps protect against XSS, CSFR, and SQL Injection by sanitizing HTTP POST input and verifying request authenticity. • “ApplicationScope” stores stateful information available to all running instances of a web application. State is kept on the local file system in the server temp directory.

  10. Annotations • META data for PHP code • Annotate Classes • Annotate Properties • Annotate Methods • Extends PHP Reflection API • No instantiation required • Enables AOP in PHP • Solve cross-cutting concerns • Foundation for AgilePHP Interceptors

  11. Interceptors • “Intercept” class loading, property set/get and method calls. • Use a class level “#@Interceptor” annotation to create an interceptor. Use a method level “#@AroundInvoke” annotation to cause the method to be invoked during the interception. • Captures the “invocation context” at the point in time PHP executes the requested operation, and passes this context into the “interceptor” for further processing. • AgilePHP is the only PHP framework to offer interceptors.

  12. Interceptor Example Code

  13. Dependency Injection with Interceptors • Completely eliminates cross-cutting concerns and increases portability of objects. • Reduces the amount of pluming code required to wire up an object (and its initial state).

  14. Client Side Remoting • AgilePHP comes with a client side library that makes it easy to build AJAX enabled web applications with PHP. • AgilePHP.Remoting uses AgilePHP.XHR under the covers. • Remoting allows PHP objects to be called directly from JavaScript, using native objects. • Remote PHP Wobjects can be invoked in both stateful and stateless contexts. • Remoting can be performed in both Asynchronous and Synchronous modes.

  15. Dynamic Form Builder • Automated form generation based on a domain model. • BaseModel MVC classes provide helper methods for rendering forms using XSLT out of the box. • Forms get rendered with an AgilePHP request token by default to guard against CSFR attacks. • Render forms to HTML, JSON, and XML. • AgilePHP.XHR.formSubmit will automatically submit generated (and custom) forms with all their input fields to a specified URL.

  16. Cryptography • Provides hashing and private/public key cryptography. • Makes storing secure data within your application easy. • Provides helper methods for common algorithms and exposes the underlying PHP ‘hash’ function which can be used to set application specific algorithms. • Configurable via agilephp.xml or using code at run time.

  17. i18n (Internationalization) • Translate your PHP application to any language you wish. • Uses the GNU “gettext” utility suite which can be enabled within PHP using the –with-gettext configuration option. • Uses industry standard .PO and .MO files for translation. • Works well with GUI based translation tools for gettext, such as POEdit, for both Windows and Linux.

  18. Validation • Assists with maintaining data integrity. • Check your user input to make sure they match certain criteria. • The validation component still needs to be integrated with the ORM framework. • The validation component is still in development, feel free to contribute.

  19. File Upload • Single file upload. • Multiple file uploads. • Object Oriented. • For example….

  20. PHPUnit Integration • The AgilePHP “generator” package is a series of PHPUnit tests that help you create, build, and deploy your PHP web application. • Encourages unit testing. • Encourages Test Driven Deployment (TDD) which is in alignment with agile software development practices. • Catch bugs caused by adding/modifying code before you deploy to production. • Make your application robust.

  21. OpenAppstore Integration • OpenAppstore is a Make A Byte open source Platform as a Service (PaaS) solution. • OpenAppstore was built specifically for jHosting, AgilePHP, and other future Make A Byte products which have a “pluggable” or Service Oriented Architecture (SOA). • AgilePHP downloads application components directly from the Make A Byte community AppStore. • Promotes sharing and code re-use. • The secret to the light-weight nature of AgilePHP.

  22. Framework “Bloat” Comparison

More Related