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": "*"
php composer.phar global require index0h/yii2-phar:*
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
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.
from
=> to
] for modifications in files.Removes all whitespaces form php files by php_strip_whitespace.
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));
}
}
inside phar archive
make test-all
Comments