»
S
I
D
E
B
A
R
«
Sponsored Links
lexa-tools framework for PHP 5.3
Jun 4th, 2011 by Alex

lexa-tools library is not as much a framework as a set of utililies (tools). You are free to organize the site as you’d like. No special folder structure is required. No need to declare any classes. No config files and no magic conventions. The library just arms you with a handy procedural API.

Most ideas were borrowed from Ruby on Rails when I was porting an application from Rails to PHP. If you have had experience with Rails then you would notice a lot of familiar concepts and names.

Visit the lexa-tools homepage

Related Blogs

    SkullPuppy: The Zend-Compatible Framework
    Mar 30th, 2011 by mei-chris

    I just finished putting up a copy of my PHP Application Framework on Source Forge and am looking for developers to test it out and send feedback:

    SkullPuppy is a PHP5.3 application framework that provides an extensible architecture for rapid development, maintenance, and deployment of PHP applications. It uses the popular and established MVC architectural pattern to reduce development costs and help developers write less code.

    Why a new framework? When I was looking to use a PHP framework for some of my biggest cloud applications, I had determined that I liked the Zend Application framework the best. Yet even still, it wasn’t quite 100% what I needed it to be. I loved the modular architecture and the development model, but I felt that it was too bloated, and some of the framework was just more complicated than it needed to be.

    The result: I wrote my own framework from the ground up, with the intention of being compatible to the Zend Application Framework. You can develop and write code just as you would in Zend, but with a few added benefits. For example, SkullPuppy takes up a few KB instead of several MB; SkullPuppy does not need to implicitly declare classes in the library folder to use them, it has an auto-loader that will take care of this for you; The built-in classes for many things, like db access, are much easier to use than in Zend, etc…

    But what’s more, if you wish to use any of the Zend modules for one reason or another, you should be able to simply drop them in the library folder and use them as is.

    This is an initial public release, so I am looking for heavy user feedback to improve this framework, but it is by no means alpha software. This framework is currently used to power several reputable high-traffic websites as it stands, and has been put through repeated live testing for well over a year now.

    Just hop on over to www.SkullPuppy.com to grab a copy of the source and docs, and please leave your feedback on Source Forge!

    Related Blogs

      EuropaPHP: A feather-weight, extremely-fast, diverse, scalable and productive PHP5 MVC framework.
      May 13th, 2010 by treshugart

      EuropaPHP is an extremely fast, flexible and easy-to-use PHP5 MVC framework. It’s open source and licensed under the BSD. It is designed to provide a fast and simple MVC API without constraining you to a specific tool-set. Drop in the Zend Framework, Doctrine, etc.; without any extra configuration. You can even extend the view to easily integrate template frameworks such as Twig and Smarty.

      You should use Europa if you:

      • Strive for blazing speed and scalability.
      • Want a framework with a very small footprint.
      • Think that an API should embrace the KISS Principle.
      • Respect concepts such as Loose Coupling and Functional Cohesion.
      • Follow widely-used and well-documented coding standards such as Zend and PEAR.
      • Want to be able to simply drop in the Zend Framework or easily integrate with other tool-sets.
      • Loathe unnecessary complexity and strive for clean, simple and elegant solutions.

      Feel free to check it out and download it. Let me know what you think.

      Also, check it out on Github and Ohloh.

      Related Blogs

        Zend Framework Architecture
        Mar 5th, 2010 by wood

        Introduction

        Before we begin our exploration of the architecture of the Zend Framework (ZF), it is important to discuss how a typical MVC application is built. Examining and understanding the architecture of an MVC Web application allows you to make more contextually sound choices when building your application.

        Three-tier Architecture

        The three-tier architecture focuses on defining responsibilities between different parts of the application. It has the following tiers:

        Presentation Tier
        The top-most level of the application is the UI. The main function of the interface is to translate tasks and results to something the user can understand.

        Application Tier
        This layer coordinates the application, processes commands, makes logical decisions and evaluations, and performs calculations. It also moves processes data between the two surrounding layers.

        Data Tier
        Here information is stored and retrieved from a database or file system. The information is then passed back to the logic tier for processing, and then eventually back to the user.

        Model-View-Controller Architecture

        Although the three-tiers is similar to the MVC architecture, they are different. Conceptually the three-tier architecture is linear. The Presentation tier never communicates directly with the data tier and all communication must pass through the Application tier. However, the MVC architecture is triangular: the View sends updates to the Controller, the Controller updates the Model, and the View gets updated directly from the Model.

        Zend Framework

        Zend Framework provides components for the MVC and Table Gateway design patterns which are used in most Web applications. Developed by Zend Technologies and released in 2005, Zend Framework is heavily based on the Solar Framework, developed by Paul M. Jones, reason why they share a similar underlying architecture.

        There are 3 types of Web application frameworks:

        1. The ones that offer a solid infrastructure: Symfony, Solar, Ruby on Rails and Django.
        2. The ones that offer a component library: ezComponents and PEAR.
        3. The ones that offer both: Zend Framework.

        Zend Framework not only offers a solid infrastructure, but also an extensive component library. The component structure of ZF is somewhat unique, each component is designed with few dependencies on other components. This loosely-coupled architecture allows developers to use components individually.

        Architecture

        The framework architecture is based on the Front Controller and Model-View-Controller architectural patterns:

        MVC pattern

        The Model is the part of the application that defines its basic functionality behind a set of abstractions. The data access layer and some business logic is defined in the Model. The Views define exactly what is presented to the user. Usually controllers pass data to each view to render in some format. The Controllers bind the whole pattern together. They may manipulate models, decide which view to display based on the user’s request and other factors, pass along the data that each view will need, or hand off control to another controller entirely.

        Front Controller pattern

        Zend_Controller is the heart of Zend Framework’s MVC system. Zend_Controller_Front implements a Front Controller pattern, in which all requests are intercepted by the front controller and dispatched to individual Action Controllers based on the URL requested.

        Coupling

        ZF provides a loosely-coupled component library simplified to provide most of the functionality everyone needs to develop Web applications. In object-oriented programming coupling or dependency is the degree to which each component relies on each one of the other components. The biggest advantage of a loosely-coupled architecture is that it allows developers to use components individually.

        Neil Garb did an excellent job measuring the level of coupling in the Zend Framework based on the number of dependencies set in code. I’ve extended his work by measuring the level of coupling between components set at runtime. I’m using the Inclued extension to trace through the hierarchy of file inclusions and class inheritance at runtime.

        The following diagrams where generated using Graphviz:

        Zend_Controller dependencies

        Zend_Controller and Zend_Db dependencies

        Zend_Controller, Zend_Db and Zend_From dependencies

        A standard Zend Framework application requires the following components: Zend_Controller, Zend_Uri, Zend_Registry, Zend_Loader, Zend_Config, Zend_Layout, Zend_View, Zend_Filter, Zend_Validate, Zend_Db, Zend_Form and Zend_Exception.

        Criticism

        Zend Framework is intended to serve as a novel way to manage Web development complexity. Many consider ZF to deliver reasonably well on this promise, however, it does not universally accommodate all design styles, environments or requirements.

        Performance

        The performance of a framework is influenced by many factors, particularly the configuration of your servers. However, the design of an application can make a big difference and determine whether your site is slow or highly responsive. Recent benchmarks show that the Zend Framework is slower than other Web frameworks.

        Although low coupling is a sign of a well-structured system, it may reduce performance, and a highly-coupled system is sometimes desirable to achieve maximum efficiency. Regardless, in many modern frameworks, the cost of reduced performance is often seen as a worthy trade for the benefits to the software development process that result from low coupling.

        Design

        Although the framework supports modularity, it lacks of some basic features, such as a Module Coordinator. The system doesn’t include any component or configuration mechanism to deal with Model and Controller dependencies, making it very difficult to share modules between applications. Also, Zend_Controller doesn’t allow modular systems to load model files from within its own module as well as outside modules.

        The system lacks of local containers to manage object dependencies and interrelationships. Instead, it uses a global container to store objects. According to Troels Knak-Nielsen, the problem with this is that a global container, whether primitive or sophisticated, will always be a global symbol. Most programmers will agree that global variables are bad design, and that goes for a global containers as well.

        Namespaces

        With PHP 5.3 coming up on the horizon, the Zend Framework API faces a re-design. While namespaces will hopefully lead to more readable code, Zend developers will finally need to start thinking about some standards for abstract classes and interfaces.

        Links

        Zend_Db_Table subquery
        Nov 11th, 2009 by wood

        Hi, I have a some SQL that I want to use with ZendFW, but I can't get it working and it's driving me crazy. I get the correct result with this query:

        SELECT DISTINCT e.festival_id FROM entries AS e, mail_log as m 
        WHERE e.status = 1 
        AND e.festival_id 
        NOT IN (SELECT m.entry_id FROM entries AS e, mail_log as m WHERE m.entry_id = e.festival_id)
        

        Help would be appreciated. Cheers :)



        »  Substance: PHP Frameworks   »  SiteMap