This module provides console interface for building PHAR archives for Yii2 applications.
The preferred way to install this extension is through composer.
php composer.phar require --prefer-dist index0h/yii2-phar "*"
or add line to require section of composer.json
"index0h/yii2-phar": "*"
- Installation
php composer.phar global require index0h/yii2-phar:*
- Running
yii2-phar
# Or with external configuration
yii2-phar phar/build myConfiguration.php
Once module is installed, modify your application configuration as follows:
return [
'modules' => [
'phar' => 'index0h\\phar\\Module',
...
],
...
];
You can access to yii2-phar module though console:
yii phar/build
- compress - Array of compress algorithms, \Phar::GZ, \Phar::BZ2. Creates compressed files of main phar.
- files - List of files to compile.
- folders - List of directories to compile.
- ignore - List of regexp patterns that must be ignored on build. That means if any file will match to any of patterns - it will be ignored.
- path - Path to phar file save.
- pharName - Phar name.
- signature - One of Phar signature algorithms. If it is Phar::OPENSSL - openSSLPrivateKeyAlias is required.
- openSSLPrivateKeyAlias - Alias to OpenSSL certificate, should be on \Phar::OPENSSL signature set.
- stub - Alias to stub file, if false - will not be set.
Components - php classes for files modifications in phar archives. For example: remove all whitespaces from php code. Components configuration is just like yii Application components, for example:
return [
'modules' => [
'phar' => [
'class' => 'index0h\\phar\\Module',
'components' => [
'fixer' => [
'class' => 'index0h\\phar\\components\\php\\Fixer',
'match' => '/.*\.php/'
]
]
]
...
],
...
];
Fixer changes realpath functions in files that doesn't work in phar.
- match - List of regexp for files that must be modified.
- replace - Array of regexp for [
from
=>to
] for modifications in files.
Removes all whitespaces form php files by php_strip_whitespace.
- match - List of regexp for files that must be modified.
Simply create class that extends index0h\phar\base\Component and implement processFile method.
For example minimize component:
namespace index0h\phar\components\php;
use index0h\phar\base\Component;
use index0h\phar\base\FileEvent;
/**
* Removes whitespace and comments from php files.
*/
class Minimize extends Component
{
/**
* For all php files without suffix Controller (because help command parses comments).
*/
protected $match = ['/(?<!Controller)\.php/us'];
/**
* Modification of file.
*
* @param FileEvent $event Event with file information.
*/
public function processFile(FileEvent $event)
{
file_put_contents($event->realPath, php_strip_whitespace($event->realPath));
}
}
- realPath - path to temporary file.
- relativePath - path in phar file.
- Select Run/Debug Configuration -> Edit Configurations
- Select Add New Configuration -> PHP Script
- Type:
- File: /path/to/yii2-phar/.test.php
- Arguments run: run --coverage --html
- OK
- Select Run/Debug Configuration -> Edit Configurations
- Select Add New Configuration -> PHP Script
- Type:
- File: /path/to/yii2-phar/.test.phar.php
- Arguments run: run --no-exit
- OK
make test-all