This web site is created with zend-expressive running on PHP 7.
Install dependencies using composer:
$ composer installFirst, update the config/autoload/local.php configuration file:
$ cp config/autoload/local.php.dist config/autoload/local.phpEdit the config/autoload/local.php file and fill the fields with appropriate
values:
return [
'debug' => false,
'zf_manual_basepath' => '<path to ZF manuals folder>',
'config_cache_enabled' => false,
];If you enable config_cache_enabled, you will need to configure the ENV
variable APP_CACHE in the file .docker/nginx/default.conf:
server {
...
fastcgi_param APP_CACHE "<path to cache folder>";
...
}Afterwards, you need to build the configuration and cache files of the web site using the following command:
$ php bin/build.phpFor development, we use docker-compose; make sure you have both that and Docker installed on your machine.
Build the images and launch them:
$ docker-compose up --build -dYou can then browse to http://localhost:8080, and any changes you make in the
project will be reflected immediately.
The web site offers a statistics and status page. In order to generate the statistics data, we use the Packagist API.
You need to execute the following command to generate it:
$ php bin/stats.php <path-to-stat-file>This script will save the statistics number in the <path-to-stat-file> and
create a symlink to it in the config/autoload/zf-stats.local.php file.
When you update the stats file with config caching enabled, you need to
delete the cache file to get the new statistics numbers. In order to faciliate
this process, we provide a node.js script,
bin/watch.js, that removes the cache file on each change of the file stat.
You can execute the watch.js script using the following command:
$ node watch.js <file-to-watch> <file-cache-to-remove>where <file-to-watch> is the stat file to watch and <file-cache-to-remove>
is the file cache to remove.
This script can be easily configured as a service in GNU/Linux environments using Systemd.
We provide a bin/statswatch.system configuration file to be used to execute
the script as a service. First, copy bin/statswatch.system to your
/etc/systemd/system directory:
$ sudo cp bin/statswatch.system /etc/systemd/systemOnce that is done, refresh the systemd daemon and start the statswatch service:
$ sudo systemctl daemon-reload
$ sudo systemctl start statswatchTo watch logs for statswatch in realtime:
$ sudo journalctl --follow -u statswatchTo start the service during server boot:
$ sudo systemctl enable statswatchAny time you add or update content of the website related to the blog, security advisories, issues, or changelogs, you need to re-build the configuration files using the following command:
$ php bin/build.phpIf you have setup a configuration cache directory, define the APP_CACHE
environment variable before invoking the script:
$ APP_CACHE=/path/to/cache/ php bin/build.phpCSS can be found in the asset/sass/ directory (we use SASS for defining our CSS),
and JS can be found in the asset/js/ directory.
After changing CSS or JS you need rebuild assets, as following:
$ cd asset
$ npm install
$ gulpNew files will be generated in public/js/ and public/css/, and old files will
be removed. The file asset/rev-manifest.json will contain new revision names for
our assets. The file is used by the asset() view helper.
The above commands are run automatically when you execute bin/build.php.