Skip to content

A Zend Framework Skeleton with Zend + TDD + ZFDebug + Module structure

Notifications You must be signed in to change notification settings

ayhanbaris/Zend-Framework-Skeleton

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Description

This is a Zend Framework Skeleton, below you'll find some specs about it.

  • Zend Framework
  • Module structure
  • ZFDebug
  • TDD ready
  • PHPUnit ready
  • Zend_Log configured (using firebug in development)
  • Zend_Translate configured (using .mo files)
  • Zend_Translate configured to log the missing translations in dev environment
  • Zend_Translate defaults to english
  • FlashMessages plugin installed
  • VersionHeader plugin installed (send the version of the app through a special header)
  • DBAdapter already configured (just change the credentials on the app.ini)
  • Cache Backends configurable through app.ini
  • Memcache and file cache backends configured
  • Automatic CSRF check in all the forms
  • Autoloader configured
  • Router configured to read the routes from xml files
  • Different bootstrap and entry point per module
  • Zend_Locale configured to detect the locale and degrades gracefully
  • App configured to use three environments (dev, staging, production)
  • Zend_Registry up and running
  • All the handy data stored in the Registry and constants like environment, some paths (app path, root path), config object...
  • View Helper to translate using the following method $this->t() instead of $this->translate() (much shorter)
  • Flag and Flippers concept of flickr implemented through ACL
  • Flag and Flippers configurable via BO (Still some stuff in development)
  • CLI tool to generate basic ACL rules for controllers and actions
  • Basic Inflector
  • Strong password rules (The new password cannot be any of the last 4 used)
  • Three custom validators to handle passwords
  • Basic BO structure with two levels of navigation
  • BO menu generated automatically based on an array and filtered through the Flag and flippers configured
  • All the tables needed dumped in a sql file under /docs
  • Akrabat db migration system implemented
  • Amazon CloudFront Invalidator implemented
  • Amazon SNS publish feature implemented
  • Amazon S3 integrated

Credentials to access the BO

Admin Group

Username: john.doe
Password: lorem

Member Group

Username: member.test
Password: lorem

Installation

  1. You have to have a memcached server and the memcache php extension installed

  2. Get a copy of the files in your machine

  3. Create two folders called cache and logs in the root of the project and subfolders in logs one for each module

    On *nix: mkdir -p cache logs/backoffice logs/frontend/missing_translations

  4. Give read/write access to those folders

    On *nix: chmod -R 777 cache logs

  5. Create the virtual hosts (one per module)

    <VirtualHost *:80> ServerAdmin admin@example.com

     ServerName frontend.zfs.local
     DocumentRoot PATH_TO_THE_PROJECT/public/frontend
     <Directory />
         Options FollowSymLinks
         AllowOverride All 
     </Directory>
     <Directory PATH_TO_THE_PROJECT/public/frontend>
         Options -Indexes
         AllowOverride All
         Order allow,deny
         allow from all
     </Directory>
     
     ErrorLog /var/log/apache2/frontend-error.log
     
     # Possible values include: debug, info, notice, warn, error, crit,
     # alert, emerg.
     LogLevel warn
     
     CustomLog /var/log/apache2/frontend-access.log combined
    

    <VirtualHost *:80> ServerAdmin admin@example.com

     ServerName backoffice.zfs.local
     DocumentRoot PATH_TO_THE_PROJECT/public/backoffice
     <Directory />
         Options FollowSymLinks
         AllowOverride All 
     </Directory>
     <Directory PATH_TO_THE_PROJECT/public/backoffice>
         Options -Indexes
         AllowOverride All
         Order allow,deny
         allow from all
     </Directory>
     
     ErrorLog /var/log/apache2/backoffice-error.log
     
     # Possible values include: debug, info, notice, warn, error, crit,
     # alert, emerg.
     LogLevel warn
     
     CustomLog /var/log/apache2/backoffice-access.log combined
    
  6. If you are working on a local machine add the servername to your local hosts file

    On *nix: echo 'frontend.zfs.local' >> /etc/hosts
    On *nix: echo 'backoffice.zfs.local' >> /etc/hosts

  7. Duplicate the file application/config/environment.example.php and rename the copy to environment.php

  8. Import the db scheme located at /docs/sql/db.sql

  9. Create the storage directory for the ZF Tool

    zf --setup storage-directory

  10. Setup the config file for ZF Tool

    zf --setup config-file

  11. Modify the ~/.zf.ini file created and replace the content with the following

    basicloader.classes.0 = "Akrabat_Tool_DatabaseSchemaProvider"

That's it you can start now using the skeleton to build the next amazing app!

About

A Zend Framework Skeleton with Zend + TDD + ZFDebug + Module structure

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published