2017 © Pedro Peláez
 

project application

Core Application

image

pacificnm/application

Core Application

  • Sunday, January 1, 2017
  • by pacificnm
  • Repository
  • 1 Watchers
  • 0 Stars
  • 0 Installations
  • HTML
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 5 Versions
  • 0 % Grown

The README.md

PacificNM Skeleton Application

Introduction

This is a skeleton application using the PacificNM layer and module systems. This application is meant to be used as a starting place for those looking to get their feet wet with PacificNM., (*1)

Installation using Composer

The easiest way to create a new PacificNM 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 PacificNM project:, (*3)

$ composer create-project -sdev pacificnm/skeleton-application 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 PacificNM 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 pacificnm/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)

QA Tools

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 pacificnm/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

The Versions