mirror of
https://github.com/envoyr/nginx-configurator.git
synced 2026-05-10 15:19:05 +00:00
remove parser and add collection package into this library
This commit is contained in:
87
README.md
87
README.md
@@ -1,7 +1,7 @@
|
||||
NGINX Configurator
|
||||
==================
|
||||
|
||||
PHP Library for NGINX configuration parser/generator
|
||||
PHP Library for NGINX configuration generator
|
||||
|
||||

|
||||
|
||||
@@ -27,60 +27,6 @@ This library requires *PHP* in `>=8.1` version.
|
||||
|
||||
## Usage
|
||||
|
||||
Parsing configuration string:
|
||||
|
||||
```php
|
||||
use Envoyr\NginxConfigurator\Builder;
|
||||
use Envoyr\NginxConfigurator\Config\Server;
|
||||
use Envoyr\NginxConfigurator\Parser;
|
||||
|
||||
require 'vendor/autoload.php';
|
||||
|
||||
$config = <<<CONFIG
|
||||
server {
|
||||
listen 8080;
|
||||
root /data/www/web;
|
||||
index index.php index.html index.htm;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ /index.php;
|
||||
}
|
||||
|
||||
error_page 404 /404.html;
|
||||
|
||||
error_page 500 502 503 504 /50x.html;
|
||||
location = /50x.html {
|
||||
root /usr/share/nginx/www;
|
||||
}
|
||||
|
||||
# pass the PHP scripts to FastCGI server listening on the php-fpm socket
|
||||
location ~ \.php$ {
|
||||
try_files $uri =404;
|
||||
fastcgi_pass unix:/var/run/php5-fpm.sock;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
include fastcgi_params;
|
||||
}
|
||||
}
|
||||
CONFIG;
|
||||
|
||||
$parser = new Parser();
|
||||
$defaultConfig = $parser->parse($config);
|
||||
/** @var Server $defaultServers[] */
|
||||
$defaultServers = $defaultConfig->search(function (Node $node) {
|
||||
return $node instanceof Server;
|
||||
});
|
||||
|
||||
|
||||
$builder = new Builder();
|
||||
if (count($defaultServers) > 0) {
|
||||
/** @var Server $defaultServer */
|
||||
foreach ($defaultServers as $defaultServer) {
|
||||
$builder->append($defaultServer);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Generating configuration string:
|
||||
|
||||
```php
|
||||
@@ -167,37 +113,6 @@ server {
|
||||
}
|
||||
```
|
||||
|
||||
There are also methods to read and dump file:
|
||||
|
||||
```php
|
||||
use Envoyr\NginxConfigurator\Builder;
|
||||
use Envoyr\NginxConfigurator\Config\Location;
|
||||
use Envoyr\NginxConfigurator\Config\Server;
|
||||
use Envoyr\NginxConfigurator\Node\Directive;
|
||||
use Envoyr\NginxConfigurator\Node\Literal;
|
||||
use Envoyr\NginxConfigurator\Parser;
|
||||
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
$parser = new Parser();
|
||||
$builder = new Builder();
|
||||
|
||||
$configuration = $parser->parseFile('default.conf');
|
||||
|
||||
/** @var Server $servers[] */
|
||||
$servers = $configuration->search(function (Node $node) {
|
||||
return $node instanceof Server;
|
||||
});
|
||||
if (count($servers) > 0) {
|
||||
/** @var Server $server */
|
||||
foreach ($servers as $server) {
|
||||
$builder->append($server);
|
||||
}
|
||||
}
|
||||
|
||||
$builder->dumpFile('generated.conf');
|
||||
```
|
||||
|
||||
## TODO
|
||||
|
||||
* [ ] Implement comments parsing
|
||||
|
||||
Reference in New Issue
Block a user