Skip to content

hthetiot/basezf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a demo basezf application, primarily developed to provide a clean
implementation of the Zend Framework.

INSTALLATION
=======================================================================
This application requires that you either have Zend Framework on your
include_path, or that you will be symlinking your Zend Framework library
into the library directory. If you do not yet have Zend Framework, you
can get it from one of the following sources:

  * Official Release:
    http://framework.zend.com/dowload/latest

  * Using Subversion; use either the current trunk or the 1.9.2 release branch:
    svn co http://framework.zend.com/svn/framework/standard/trunk/library/Zend
    svn co http://framework.zend.com/svn/framework/standard/branches/release-1.9.2/library/Zend

  * Using Git; use either the current trunk or the 1.9.2 release branch:
    git clone http://tjohns.net/git/zf.git
    git fetch
    git checkout --track -b release-1.9.2 origin/tags/release-1.9.2
    
Install Zend Framework locally, and the follow these steps:

1. Run the "make config" commande and answer questions:

    cd <myproject_path>
    make config

2. Init your environment

    cp <myproject_path>/includes/auto_prepend_local.php-dist <myproject_path>/includes/auto_prepend_local.php
    set ZF_PATH value on <myproject_path>/includes/auto_prepend_local.php to Zend Framework path (without library/)

2. Add Apache config generated by "make config":

    ln -s <myproject_path>/etc/apache.conf /etc/apache2/site-available/001-myproject
    ln -s /etc/apache2/site-available/001-myproject /etc/apache2/site-enable/001-myproject
    sudo /etc/init.d/apache2 reload

DEPENDENCY
=======================================================================

PHP Package
    php5 php-pear php5-mysqli php5-pgsql php5-curl php5-xmlrpc php5-json

PHP PEAR Modules (pear channel-discover pear.phpunit.de)
    PHP_CodeSniffer phpunit/PHPUnit phpunit/phpcpd phpunit/phploc

PHP PECL Modules
    apc memcache xdebug

Apache Modules (need to be enable for perfomance issue)
    Expire Rewrite Deflate

Binary Services Package
    gettext imagemagick memcached pwgen java-1.6 csstidy

Documentation Generation (useless in production)
    doxygen graphviz


DOCUMENTATION
======================================================================

Documentations files are available on following paths:

    <myproject_path>/doc/pdf
    <myproject_path>/doc/html
    <myproject_path>/doc/latex

To Generate source code documentation, run the "make doc" command:

    cd <myproject_path>
    make doc

FEATURES
=======================================================================

@todo list basic features

Frameworks:
- Zend Framework 1.9.2
- Motools 1.2.3
- BluePrint 0.9

Features:

* MakeFile
- Static content compilator for CSS and JS use YUICompressor and TidyCSS
- PHP Unit test with Examples Classes for MVC coverage and others layers (using phpUnit)
- PHP Unit test coverage report
- PHP syntax validator
- PHP quality validator and inspector (using phpcs, phploc and phpcpd)
- Source code documention generator (using Doxygen)
- Locale manager (update, deploy, merge using gettext)
- Log manager (clean, archive, rotate)
- Config manager (deploy, distribute, versioning)

* Orm (DbItem + DbCollection)
- Zend_Cache support
- Zend_Db support
- Zend_Db_Select support
- Data Mass Extractor/Extractor
- Simple Extend for DbItem and DBCollection
- Simple CacheKeys and Expire Duration management for many patern with no complex flushing
- Paginator Flushing on DbCollection
- Template parsor Adapter with simple scripting support
- Debugger and log

* Orm (not merged but in sandbox)
- Sphinx adapter
- StCollection And StItem
- Full relationel mapping one to one and one to many (extendable)

*  Others
- Controller plugin to enable full native cache browser
- Zend_Application_BootStrap extended class
- Simple and usefull Abstract Controllers
- UWA Abstract Controllers (widget for os, phones and web services)
- New Form Elements and Decorators and Helpers include BaseZF helper JS plugins (based on mootools)
- Debugger and Loger for Firefox (use ZF now)
- Local environment for developer
- Debugging tools frontends: Apc, XDebug, MemCached, phpUnit, ...
- Use Apache AutoPrepend for perfomance issue (instead of .htaccess)
- Distributed Config on repository

* Others (not merged but in sandbox)
- Locale parser for StCollection and StItem
- Simple Gettext Release Process

And many more not yet listed...

"Software is like sex: it's better when it's free"

STRUCTURE
=======================================================================

   <myproject_path>/
    |
    |-> app/                        - This directory contains your application. It will house the
    |   |                             MVC system, as well as configurations, services used, and your
    |   |                             bootstrap file.
    |   |
    |   |-> Bootstrap.php           - This file is the entry point for your application. The purpose
    |   |                             for this file is to bootstrap the application and make
    |   |                             components available to the application by initializing them.
    |   |                             This file should not call dispatch() on the front controller.
    |   |-> controllers/
    |   |-> views/
    |       |-> filters/
    |       |-> helpers/            - These directories will contain view helpers. View helpers will
    |       |                         be namespaced either as "App_View_Helper_<HelperName>" on
    |       |                         <HelperName>.php file
    |       |
    |       |-> layouts/            - This layout directory is for MCV-based layouts.
    |       |-> scripts/
    |
    |-> bin/
    |-> data/                       - This directory provides a place to store application data that
    |                                 is volatile and possibly temporary. The disturbance of data in
    |                                 this directory might cause the application to fail. Also, the
    |                                 information in this directory may or may not be committed to a
    |                                 subversion repository. Examples of things in this directory
    |                                 are session files, cache files, sqlite databases, logs and
    |                                 indexes.
    |
    |-> doc/                        - This directory contains documentation, either generated or
    |                                 directly authored.
    |
    |-> etc/                        - The application-wide configuration directory
    |-> includes/
    |-> lib/                        - This directory houses of PHP libraries folder which contains
    |                                 BaseZF and MyProject. Developers should also place their
    |                                 application's library code under this directory in a separate
    |                                 namespace- ie, a namespace that does not begin with 'Zend'.
    |-> locale/
    |-> public/                     - This directory contains all public files for your application.
    |                                 index.php sets up the PHP environment, include the
    |                                 Bootstrap.php file from your app/ directory and finally
    |                                 dispatch() the front controller. The web root of your web
    |                                 server would typically be set to this directory.
    |-> sql/
    |-> tests/                      - This directory contains application tests. These could be hand
                                      written, phpunit , tests selenium based tests or based on some
                                      other testing framework. By default, library code can be
                                      tested by mimicing the directory structure of your library/
                                      directory. Additionally, functional tests for your application
                                      could be written mimicing the app/ directory and subdirectory
                                      structure.


REQUESTS
=======================================================================
If you have any feature requests, feel free to send them to:

    Harold Thetiot <hthetiot@gmail.com>

I may or may not honor them. :)

LICENSE
=======================================================================
Please see COPYING
=======

About

A Zend Framework Implentation

Resources

License

Stars

Watchers

Forks

Packages

No packages published