Skeleton Dms
Introduction
This is a skeleton application using the Zend Framework MVC layer and module
systems With Dms., (*1)
Installation using Composer
The easiest way to create a new Zend Framework project is to use
Composer. If you don't have it already installed,
then please install as per the documentation., (*2)
To create your new Zend Framework project:, (*3)
$ composer create-project buse974/skeleton-dms path/to/install
Once installed, you can test it out immediately using PHP's built-in web server:, (*4)
$ cd path/to/install
$ php -S 0.0.0.0:8080 -t public/ public/index.php
# OR use the composer alias:
$ composer serve
This will start the cli-server on port 8080, and bind it to all network
interfaces. You can then visit the site at http://localhost:8080/
- which will bring up Zend Framework welcome page., (*5)
Note: The built-in CLI server is for development only., (*6)
Development mode
The skeleton ships with zf-development-mode
by default, and provides three aliases for consuming the script it ships with:, (*7)
$ composer development-enable # enable development mode
$ composer development-disable # disable development mode
$ composer development-status # whether or not development mode is enabled
You may provide development-only modules and bootstrap-level configuration in
config/development.config.php.dist
, and development-only application
configuration in config/autoload/development.local.php.dist
. Enabling
development mode will copy these files to versions removing the .dist
suffix,
while disabling development mode will remove those copies., (*8)
Development mode is automatically enabled as part of the skeleton installation process.
After making changes to one of the above-mentioned .dist
configuration files you will
either need to disable then enable development mode for the changes to take effect,
or manually make matching updates to the .dist
-less copies of those files., (*9)
Running Unit Tests
To run the supplied skeleton unit tests, you need to do one of the following:, (*10)
- During initial project creation, select to install the MVC testing support.
-
After initial project creation, install zend-test:, (*11)
$ composer require --dev zendframework/zend-test
Once testing support is present, you can run the tests using:, (*12)
$ ./vendor/bin/phpunit
If you need to make local modifications for the PHPUnit test setup, copy
phpunit.xml.dist
to phpunit.xml
and edit the new file; the latter has
precedence over the former when running tests, and is ignored by version
control. (If you want to make the modifications permanent, edit the
phpunit.xml.dist
file.), (*13)
Using Vagrant
This skeleton includes a Vagrantfile
based on ubuntu 16.04, and using the
ondrej/php PPA to provide PHP 7.0. Start it up using:, (*14)
$ vagrant up
Once built, you can also run composer within the box. For example, the following
will install dependencies:, (*15)
$ vagrant ssh -c 'composer install'
While this will update them:, (*16)
$ vagrant ssh -c 'composer update'
While running, Vagrant maps your host port 8080 to port 80 on the virtual
machine; you can visit the site at http://localhost:8080/, (*17)
Vagrant and VirtualBox
The vagrant image is based on ubuntu/xenial64. If you are using VirtualBox as
a provider, you will need:, (*18)
- Vagrant 1.8.5 or later
- VirtualBox 5.0.26 or later
For vagrant documentation, please refer to vagrantup.com, (*19)
Using docker-compose
This skeleton provides a docker-compose.yml
for use with
docker-compose; it
uses the Dockerfile
provided as its base. Build and start the image using:, (*20)
$ docker-compose up -d --build
At this point, you can visit http://localhost:8080 to see the site running., (*21)
You can also run composer from the image. The container environment is named
"zf", so you will pass that value to docker-compose run
:, (*22)
$ docker-compose run zf composer install
Web server setup
Apache setup
To setup apache, setup a virtual host to point to the public/ directory of the
project and you should be ready to go! It should look something like below:, (*23)
<VirtualHost *:80>
ServerName zfapp.localhost
DocumentRoot /path/to/zfapp/public
<Directory /path/to/zfapp/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</Directory>
</VirtualHost>
Nginx setup
To setup nginx, open your /path/to/nginx/nginx.conf
and add an
include directive below
into http
block if it does not already exist:, (*24)
http {
# ...
include sites-enabled/*.conf;
}
Create a virtual host configuration file for your project under /path/to/nginx/sites-enabled/zfapp.localhost.conf
it should look something like below:, (*25)
server {
listen 80;
server_name zfapp.localhost;
root /path/to/zfapp/public;
location / {
index index.php;
try_files $uri $uri/ @php;
}
location @php {
# Pass the PHP requests to FastCGI server (php-fpm) on 127.0.0.1:9000
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /path/to/zfapp/public/index.php;
include fastcgi_params;
}
}
Restart the nginx, now you should be ready to go!, (*26)
The skeleton does not come with any QA tooling by default, but does ship with
configuration for each of:, (*27)
Additionally, it comes with some basic tests for the shipped
Application\Controller\IndexController
., (*28)
If you want to add these QA tools, execute the following:, (*29)
$ composer require --dev phpunit/phpunit squizlabs/php_codesniffer zendframework/zend-test
We provide aliases for each of these tools in the Composer configuration:, (*30)
# Run CS checks:
$ composer cs-check
# Fix CS errors:
$ composer cs-fix
# Run PHPUnit tests:
$ composer test