Why PHP

PHP started as a fast and simple scripting language that could work seamlessly with
many other components.

In its eleventh year PHP has become a major player as a programming language and as a global platform language. PHP is ready for the big time...

PHP was designed for the Web: you have the ability to create dynamic web application such as websites, intranets and extranets. You can develop highly complex e-commerce solutions, content management systems, mailing lists, search engines and social networking sites. Basically anything you can imagine doing over the net.

  • PHP for business

    PHP is portable on all the major operating systems like Windows, MAC and Linux.

    PHP is capable of handling data from a wide range of data sources, taking that data and presenting it in numerous web friendly formats including HTML pages, graphs, spreadsheets, PDFs, XML data feeds and dynamically generated images.

    PHP facilitates interoperability. With PHP you have a single platform with which to incorporate and generate data structures obtained from such diverse technologies as LDAP, XML, Web services, Lotus Notes, SAP.

    Due to its modular system of extensions PHP is extendable to interface with various libraries such as encryption, graphics, XML and more.

  • More benefits

    Having a community of more than 4.500.000 developers and more than 20 million websites using this technology gives PHP stability and durability. It is also constantly evolving to serve the market's need for faster, cheaper, better and more secure code.

    PHP is simple, adoptable, works across platforms and most of all is non-biding. With PHP you are not dependent on a manufacturer to fix things that don't work, nor are you forced to pay for upgrades every year to get a working version.

    PHP solves integration issues on the web. It can connect directly with databases like Oracle, SQLServer, MySQL, directories, online payment systems and protocols avoiding the high development costs of integrating existing applications and databases.

  • PHP in action

    The PHP platform dominates the internet and is not limited to pure Web architectures. Due to SOAP.COM and Java, PHP enables the deployment of service-oriented architectures.

    Global companies like Cisco, Motorola, Unilever, Philips, Yahoo and Facebook, numerous governments, televisions, newspapers and banks that are currently using it certify that PHP is successfully employed in enterprise level projects.

Why a framework

The dictionary defines framework as:

- A skeletal structure designed to support or enclose something.

- A frame or structure composed of parts fitted and joined together.

A software framework

- Is a collection of software libraries that has reusable abstract code used to accomplish a set of tasks within a project without having to spend time creating components from scratch.

A web application framework:

- Is a software framework that is designed to support the development of dynamic websites, web applications and web services.

- Provides libraries for database access, templating frameworks and session management.

- Promotes code reuse.

Many web application frameworks are based on the MVC pattern to separate the data model with business rules from the user interface (UI).

Because of the attributes mentioned above, the framework is the best solution for enterprise web applications. One of these web application frameworks is DotKernel.

DotKernel uses the HMVC (Hierarchical - Model View Controller) architecture that is easy to learn by both beginner and intermediate level programmers. DotKernel is not a standalone framework; it uses Zend Framework as a component library, accessing its classes directly.

Due to its strong integration with Zend Framework, DotKernel can be considered a PHP Enterprise Level Framework.

DotKernel benefits:

- Increased development productivity and runtime performance

- Improved test coverage and peer-reviewed code quality

- Contains freely available code repositories

- Contains intrinsic security of Enterprise Level ZF components

- Is easy to learn by beginner and intermediate level developers

- Is a learning tool to familiarize yourself with ZF complexity

- Comes with three years support for each branch or version

- Reduces time-to-market for web applications and lowers costs for your clients

Development Environments

Development Environments in PHP Enterprise Applications.

Before being presented to the end user an application passes through multiple phases. There is a long road beginning with the client outline of his idea, until the application is finalized. In short, this is the process:

- The client outlines his idea for the application.

- A list of application requirements is prepared.

- The system architect takes this list and transforms it into a document detailing the design of the system meant to deliver the required functionality.

- The development team takes change to convert this document into a complete information system. From this point on, the code written by the development team passes through the following environment stages: development, staging and production. If new functionality is needed, it will be implemented by the development team.

- If no issue is found after testing, the application goes from the development stage into production, becomes "live" and is delivered to the customer.

From this point on, the system requires constant maintenance. Maintenance is two sided - new feature implementation and bug fixes.

Further in this article we will detail the environment stages from the client's point of view.
From the developer's point of view, the PHP environment is described here:
http://www.dotkernel.com/php-development/php-environment-development-staging-production/

  • Development environment

    This is where the system code is implemented. If there are multiple members in a development team, each development works on his own environment. In this stage, the client can't see a full implementation of his requirements, because these are divided between the members of the development team. The client will have to wait for the staging environment.

  • Staging environment

    It is used to assemble the code that was written in the development environment by members of the developer team. After that, the code must be tested and reviewed. If no issue is found, the application can be sent to production. Here is where the client can see his requirements outlined in application functionality (this is called a demo). In this stage, the application can be tested or used for demonstration/trading purposes. If the client comes up with improvements for the current application functionality, the code goes back to the development environment. Otherwise the code goes into production.

  • Production environment

    This is the "live" environment, where the final application goes out to the world and becomes active. From now on, the application needs maintenance. The application definitely requires regular updates due to various reasons, like unexpected system behavior or new client requirements. Each new change in the application must step through the environment stages (development and staging) before it goes out into production again.