stagem / zf-skeleton
Stagem Skeleton Application based on Zend Framework Middleware
Installs: 16
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 4
Forks: 1
Open Issues: 0
Type:project
Requires
- php: ^5.6 || ^7.0
- components/bootstrap-datetimepicker: dev-master
- components/jquery: ~2.2
- components/jqueryui: ~1.12
- doctrine/annotations: @stable
- doctrine/doctrine-orm-module: ^2.1
- doctrine/migrations: @stable
- fig/http-message-util: ^1.1
- gedmo/doctrine-extensions: ^2.4
- http-interop/http-middleware: ^0.5.0
- leafo/scssphp: ^0.7
- ocramius/proxy-manager: ^2.2
- phpoffice/phpexcel: ~1.7
- popov/db: dev-master
- popov/zfc-block: dev-master
- popov/zfc-core: dev-master
- popov/zfc-current: dev-master
- popov/zfc-data-grid: dev-master
- popov/zfc-data-grid-plugin: dev-master
- popov/zfc-db: dev-master
- popov/zfc-entity: dev-master
- popov/zfc-fields: dev-master
- popov/zfc-form: dev-master
- popov/zfc-layout: dev-master
- popov/zfc-mail: dev-master
- popov/zfc-permission: dev-master
- popov/zfc-role: dev-master
- popov/zfc-simpler: dev-master
- popov/zfc-tab: dev-master
- popov/zfc-user: dev-master
- ppito/zf3-whoops: ^1.3
- psr/http-message: ^1.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
- stagem/zfc-action: dev-master
- stagem/zfc-admin: dev-master
- stagem/zfc-cron: dev-master
- stagem/zfc-lang: dev-master
- stagem/zfc-layout: dev-master
- stagem/zfc-listener: dev-master
- stagem/zfc-menu: dev-master
- stagem/zfc-pool: dev-master
- stagem/zfc-status: dev-master
- stagem/zfc-system-config: dev-master
- symfony/yaml: ^4.0
- twbs/bootstrap: ^3.3
- twbs/bootstrap-sass: ^3.3
- webimpress/http-middleware-compatibility: ^0.1.4
- widmogrod/zf2-assetic-module: dev-router-merge
- zendframework/zend-component-installer: ^1.0 || ^0.7 || ^1.0.0-dev@dev
- zendframework/zend-db: ^2.9
- zendframework/zend-i18n: ^2.8
- zendframework/zend-mvc: ^3.0.1
- zendframework/zend-mvc-console: ^1.2
- zendframework/zend-mvc-plugin-flashmessenger: ^1.1
- zendframework/zend-navigation: ^2.9
- zendframework/zend-permissions-acl: ^2.7
- zendframework/zend-psr7bridge: ^1.0
- zendframework/zend-serializer: ^2.9
- zendframework/zend-stratigility: ^2.0
- zfc-datagrid/zfc-datagrid: dev-expressive
- zfcampus/zf-development-mode: ^3.0
This package is auto-updated.
Last update: 2025-01-14 07:10:20 UTC
README
Introduction
This is a skeleton application using the Zend Framework MVC or Middleware layer and module systems. This application is meant to be used as a starting place for those looking to get their feet wet with Zend Framework and StageM ecosystem.
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.
To create your new Zend Framework project:
$ composer create-project -sdev stagem/zf-skeleton path/to/install $ composer update
Post installation process
- Create database and create/edit
config/parameters.local.php
with next configuration
return [ 'db' => [ 'database' => 'your_database_name', 'username' => 'your_user_name', 'password' => 'your_secret_password', 'hostname' => '127.0.0.1', 'port' => 3306, 'charset' => 'utf8mb4', 'collate' => 'utf8mb4_unicode_ci', ], ];
- Create directory for assets (js, css, media)
$ mkdir -p public/assets
- Prepare Migrations' diff and execute them
$ mkdir -p data/DoctrineORMModule/Migrations $ php public/index.php migrations:diff $ php public/index.php migrations:migrate
- Prepare project's Entities
$ php public/index.php entity sync
- Prepare admin user
$ cp vendor/popov/zfc-user/data/Version20180404060817.php data/DoctrineORMModule/Migrations/ $ php public/index.php migrations:execute --up 20180404060817
After execution, console shows next output, it's normal
...
Migration 20180404060817 was executed but did not result in any SQL statements.
...
You can access to administrator area with http://localhost/admin
login: storage@stagem.com.ua
password: 123456
Notice. Don't forget change default login and password for security reason.
Once installed, you can test it out immediately using PHP's built-in web server:
$ cd path/to/install $ php -S 0.0.0.0:8080 -t public/ public/index.php # OR use the composer alias: $ composer run --timeout 0 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.
Note: The built-in CLI server is for development only.
Development mode
The skeleton ships with zf-development-mode by default, and provides three aliases for consuming the script it ships with:
$ 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.
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.
Admin Configuration
... ...
Running Unit Tests
To run the supplied skeleton unit tests, you need to do one of the following:
-
During initial project creation, select to install the MVC testing support.
-
After initial project creation, install zend-test:
$ composer require --dev zendframework/zend-test
Once testing support is present, you can run the tests using:
$ ./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.)
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:
<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:
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:
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!
QA Tools
The skeleton does not come with any QA tooling by default, but does ship with configuration for each of:
Additionally, it comes with some basic tests for the shipped
Application\Controller\IndexController
.
If you want to add these QA tools, execute the following:
$ composer require --dev phpunit/phpunit squizlabs/php_codesniffer zendframework/zend-test
We provide aliases for each of these tools in the Composer configuration:
# Run CS checks: $ composer cs-check # Fix CS errors: $ composer cs-fix # Run PHPUnit tests: $ composer test