MFCC - ZendSkeletonApplication
Introduction
This is a simple, skeleton application using the ZF2 MVC layer and module
systems., (*1)
This skeleton comes with:, (*2)
Project is [optionally] integrated with:
* Phing
* Bower (nmp required)
* Gulp (nmp required), (*3)
Installation
Using Composer (recommended)
The recommended way to get a working copy of this project is to clone the repository
and use composer to install dependencies using the create-project command:, (*4)
curl -s https://getcomposer.org/installer | php --
php composer.phar create-project mfcc/skeleton-application path/to/install
Alternately, clone the repository and manually invoke composer using the shipped
composer.phar:, (*5)
cd my/project/dir
git clone https://github.com/Tlapi/ZendSkeletonApplication.git
cd ZendSkeletonApplication
php composer.phar self-update
php -c php.ini composer.phar install
(The self-update directive is to ensure you have an up-to-date composer.phar
available.), (*6)
Project Setup
Setup project configs
Set your db connection. Copy config/autoload/local.php.dist to config/autoload/local.php and provide username, password etc., (*7)
Set your social login integration if needed in config/autoload/scn-social-auth.global.php and config/autoload/scn-social-auth.local.php.dist, (*8)
Create entities
Create your Entities and Repositories. Example provided is in module/Application/src/Application/Entity/Article.php, (*9)
Create database
Run, (*10)
php vendor/bin/doctrine orm:schema-tool:update --force
to create your database., (*11)
Run faker to fake your entities data if you want, (*12)
php public/index.php faker
[optional] Set up Phing
Set your deployment options in build.xml and deploy with cli:, (*13)
php phing-latest.phar
or apply your hotfix with:, (*14)
php phing-latest.phar applyhotfix
[optional] Set up Bower
Install bower (if not installed), (*15)
npm install -g bower
Require your project dependencies, e.g.:, (*16)
bower install jquery
And update your package file to share with others, (*17)
bower init
[optional] Set up Gulp
Install gulp globally (if needed), (*18)
npm install --global gulp
Edit gulpfile.js to meet your needs (set publicDir variable) and run, (*19)
gulp
To run individual tasks, use gulp <task> <othertask>., (*20)
Default Gulp setup
Gulp comes with following packages:
* gulp-jshint
* gulp-sass
* gulp-concat
* gulp-uglify
* gulp-rename
* main-bower-files, (*21)
gulp command does following:
* Gets all libraries installed and required by bower in bower.js, copies them to publicdir/js/libs and concatenates them to publicdir/dist/libs.js, publicdir/dist/libs.min.js
* checks any JavaScript file in our publicdir/js directory and makes sure there are no errors in our code (excluding subfolders)
* compiles any of our Sass files in our publicdir/scss directory into .css and saves the compiled .css file in our publicdir/css directory
* concatenates all JavaScript files in our publicdir/js directory (excluding subfolders) and saves the ouput to publicdir/dist/scripts.js, publicdir/dist/scripts.min.js, (*22)
Gulp watch watches publicdir/js, publicdir/js/libs and publicdir/js/scss for any changes., (*23)
Edit FakerController.php and then just run php public/index.php faker, (*24)
Example content of FakerController.php:, (*25)
$generator = \Faker\Factory::create();
$populator = new \Faker\ORM\Doctrine\Populator($generator, $this->getEntityManager());
$populator->addEntity('SomeEntity', 1000);
$populator->addEntity('ZfcUser\Entity\User', 100, array(
'username' => null
));
$insertedPKs = $populator->execute();
Find more details here, (*26)