Skip to content

Commit af0f39a

Browse files
committed
Add README files
1 parent 74559f0 commit af0f39a

File tree

2 files changed

+206
-0
lines changed

2 files changed

+206
-0
lines changed

README.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# sass-embedded-php
2+
3+
![PHP](https://img.shields.io/badge/PHP-^8.2-blue.svg?style=flat)
4+
[![Coverage Status](https://coveralls.io/repos/github/dragomano/sass-embedded-php/badge.svg?branch=main)](https://coveralls.io/github/dragomano/sass-embedded-php?branch=main)
5+
6+
> Created for research purposes, not for use on production sites!
7+
8+
PHP wrapper for [sass-embedded](https://www.npmjs.com/package/sass-embedded) (Dart Sass via Node.js).
9+
10+
Allows compiling SCSS/SASS to CSS through PHP using Node.js and npm.
11+
12+
---
13+
14+
## Requirements
15+
16+
- PHP >= 8.2
17+
- Node.js >= 18
18+
19+
---
20+
21+
## Installation via Composer
22+
23+
```bash
24+
composer require bugo/sass-embedded-php
25+
```
26+
27+
## Usage examples
28+
29+
### Compiling SCSS file
30+
31+
```php
32+
<?php
33+
require __DIR__ . '/vendor/autoload.php';
34+
35+
use Bugo\Sass\Compiler;
36+
37+
$compiler = new Compiler();
38+
39+
$css = $compiler->compileFile(__DIR__ . '/assets/app.scss');
40+
41+
file_put_contents(__DIR__ . '/assets/app.css', $css);
42+
43+
echo "CSS compiled!\n";
44+
```
45+
46+
### Compiling SCSS from string
47+
48+
```php
49+
<?php
50+
require __DIR__ . '/vendor/autoload.php';
51+
52+
use Bugo\Sass\Compiler;
53+
54+
$compiler = new Compiler();
55+
56+
$scss = '$color: red; body { color: $color; }';
57+
$css = $compiler->compileString($scss);
58+
59+
echo $css;
60+
```
61+
62+
### Safe compilation
63+
64+
```php
65+
require __DIR__ . '/vendor/autoload.php';
66+
67+
use Bugo\Sass\Exception;
68+
use Bugo\Sass\Compiler;
69+
70+
$compiler = new Compiler();
71+
72+
$scss = <<<'SCSS'
73+
$color: #e74c3c;
74+
.foo { color: $color; }
75+
SCSS;
76+
77+
try {
78+
echo $compiler->compileString($scss);
79+
} catch (Exception $e) {
80+
echo "Compilation error: " . $e->getMessage();
81+
}
82+
```
83+
84+
## Parameters
85+
86+
Paths to bridge.js and Node are specified only through the constructor:
87+
88+
```php
89+
$compiler = new Compiler('/path/to/bridge.js', '/path/to/node');
90+
```
91+
92+
Other parameters can be set either for the entire compiler at once or for a specific method separately:
93+
94+
```php
95+
$compiler->setOptions([
96+
'syntax' => 'sass', // 'scss' | 'sass'
97+
'compressed' => true, // false | true
98+
]);
99+
````
100+
```php
101+
$compiler->compileString($string, ['syntax' => 'sass']);
102+
$compiler->compileFile($file, ['compressed' => true]);
103+
```

README.ru.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# sass-embedded-php
2+
3+
![PHP](https://img.shields.io/badge/PHP-^8.2-blue.svg?style=flat)
4+
[![Coverage Status](https://coveralls.io/repos/github/dragomano/sass-embedded-php/badge.svg?branch=main)](https://coveralls.io/github/dragomano/sass-embedded-php?branch=main)
5+
6+
> Создано в исследовательских целях, не для использования на рабочих сайтах!
7+
8+
PHP-обёртка для [sass-embedded](https://www.npmjs.com/package/sass-embedded) (Dart Sass через Node.js).
9+
10+
Позволяет компилировать SCSS/SASS в CSS через PHP, используя Node.js и npm.
11+
12+
---
13+
14+
## Требования
15+
16+
- PHP >= 8.2
17+
- Node.js >= 18
18+
19+
---
20+
21+
## Установка через Composer
22+
23+
```bash
24+
composer require bugo/sass-embedded-php
25+
```
26+
27+
## Примеры использования
28+
29+
### Компиляция файла SCSS
30+
31+
```php
32+
<?php
33+
require __DIR__ . '/vendor/autoload.php';
34+
35+
use Bugo\Sass\Compiler;
36+
37+
$compiler = new Compiler();
38+
39+
$css = $compiler->compileFile(__DIR__ . '/assets/app.scss');
40+
41+
file_put_contents(__DIR__ . '/assets/app.css', $css);
42+
43+
echo "CSS скомпилирован!\n";
44+
```
45+
46+
### Компиляция SCSS из строки
47+
48+
```php
49+
<?php
50+
require __DIR__ . '/vendor/autoload.php';
51+
52+
use Bugo\Sass\Compiler;
53+
54+
$compiler = new Compiler();
55+
56+
$scss = '$color: red; body { color: $color; }';
57+
$css = $compiler->compileString($scss);
58+
59+
echo $css;
60+
```
61+
62+
### Безопасная компиляция
63+
64+
```php
65+
require __DIR__ . '/vendor/autoload.php';
66+
67+
use Bugo\Sass\Exception;
68+
use Bugo\Sass\Compiler;
69+
70+
$compiler = new Compiler();
71+
72+
$scss = <<<'SCSS'
73+
$color: #e74c3c;
74+
.foo { color: $color; }
75+
SCSS;
76+
77+
try {
78+
echo $compiler->compileString($scss);
79+
} catch (Exception $e) {
80+
echo "Ошибка компиляции: " . $e->getMessage();
81+
}
82+
```
83+
84+
## Параметры
85+
86+
Пути к bridge.js и Node указываются только через конструктор:
87+
88+
```php
89+
$compiler = new Compiler('/path/to/bridge.js', '/path/to/node');
90+
```
91+
92+
Остальные параметры можно включать как для всего компилятора сразу, так и для конкретного метода отдельно:
93+
94+
```php
95+
$compiler->setOptions([
96+
'syntax' => 'sass', // 'scss' | 'sass'
97+
'compressed' => true, // false | true
98+
]);
99+
````
100+
```php
101+
$compiler->compileString($string, ['syntax' => 'sass']);
102+
$compiler->compileFile($file, ['compressed' => true]);
103+
```

0 commit comments

Comments
 (0)