Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/assistanz/zf2-skeleton
Zend Framework Doctrine Working Skeleton
https://github.com/assistanz/zf2-skeleton
doctrine php zend-framework zend-framework2
Last synced: 6 days ago
JSON representation
Zend Framework Doctrine Working Skeleton
- Host: GitHub
- URL: https://github.com/assistanz/zf2-skeleton
- Owner: assistanz
- License: bsd-3-clause
- Created: 2014-02-10T10:55:12.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2014-03-31T03:52:59.000Z (over 10 years ago)
- Last Synced: 2023-08-13T13:20:55.551Z (over 1 year ago)
- Topics: doctrine, php, zend-framework, zend-framework2
- Language: JavaScript
- Homepage: http://assistanz.github.io/zf2-skeleton
- Size: 813 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
AssistanZ ZendFrameWork2 Skeleton Application
=============================================Directory Structure
-------------------* build - Final files generated for deployment to production server
* config - Includes various configurations
* data - Contains database scripts or SQLite DB or Cached files for performance
* module - Logic of the application divided into various modules
* public - Publicly available directories which contains static files like css,js, etc.,
* vendor - Downloaded libraries to support the functionalities of modules via composer(refer getcompoer.org)Module Structure
----------------Every module has the following files and directories
* config - Module configuration
* module.config.php - Contains router configuration, dependency services, translator path, view-templates, view-helpers, etc.,
* language - Contains language translation files per language
* src - Module source code written in PSR-0 Standard
* test - Test code to check functionality of the module (Unit Test, Integration Test, etc.,)
* view - View templates to display html and other output
* Module.php - Module Bootstrap initializes the module with required dependenciesModule coding standards
-----------------------Explaining the album module
* Controller - Contains controller classes with actions, Mapping between controller and route paths are done in module.config.php
* Dao - Data Access Object layer used to write SQLs and DQLs, Clear separation of data access from functionality this part can even access external SOAP / REST services if they are considered as a data source
* Entity - Doctrine mapped entities which act as objects reference for tables
* Exception - Specific exception related to this module
* Form - Structure and content of html forms which includes validation and filtering to avoid injections and inappropriate data
* Service - The business logic of the module commonly known as modelsGuidelines
----------* Coding standard should be practiced as in the sample
* Filename should be with PHP 5.3 namespaces and PSR-0 recommendations
* Function names should be with Hungarian notation start with small letter and separate words with capital letter
* Don't store uploaded files inside public directories store it in different location out of this project and use Apache Alias directive to load them
* Use SVN/Git to version the project and have multiple stages before releasing to production
* Try to write as many test cases as possible to ensure the functionality is without bug
* Run unit tests before committing the code to repository
* Use Phuppet and Vagrant for development and stagging environments if required
* Add all the required libraries and extensions in composer.json
* Automate deployments and testing using a continues integration system like Jenkins/Hudson if possibleDB Tools
------* ORM Mapped entities can be generated to tables using scripts
* [~/project.base]$ php vendor/bin/doctrine
* Automated Table creation should not be done in production via doctrine save the SQL and run it via migration scripts
* [~/project.base]$ php vendor/bin/doctrine orm:schema-tool:update --dump-sql
* [~/project.base]$ php ./vendor/bin/doctrine-module migrations:generate --configuration config/migrations.yml
* Save the change add your own changes (Refer http://docs.doctrine-project.org/projects/doctrine-migrations/en/latest/reference/migration_classes.html)
* In production run the following
* [~/project.base]$ php ./vendor/bin/doctrine-module migrations:migrate --configuration config/migrations.ymlSecurity and Pre-developed Modules
----------------------------------* The application can use various other modules available from Zend Framework community http://modules.zendframework.com/
* Security can be implemented as explained in https://github.com/bjyoungblood/BjyAuthorize