chigix/chiji
Chiji is a PHP 5.4+ base package for organizing and releasing front-end assets in web projects. It models resources and dependencies via Project, SourceRoad, and annotations, supporting pre-building and distribution, with optional bridge packages (e.g., Symfony).
@require, @use, @release) embedded in frontend files (CSS/JS) to define dependencies and build pipelines. This is non-standard and requires developer buy-in for adoption.chigix/chiji-bundle for Symfony). Laravel integration would require custom adapters or middleware.{{ chiji.release.dist() }}, aligning with Laravel’s Blade/Twig ecosystem.bower_components/node_modules, though modern Laravel projects typically use Laravel Mix or Vite.ProjectConfig), which is verbose compared to Laravel’s declarative mix.js()/mix.sass().ChijiServiceProvider or Facade).SourceRoad system allows dynamic file inclusion, which could expose LFI (Local File Inclusion) vulnerabilities if misconfigured.config/chiji.php, no Artisan commands).ServiceProvider to register routes/config.Chiji Facade for Twig/Blade integration (e.g., {{ chiji.dist('file.css') }}).node_modules or Mix’s webpack.mix.js.public/css/js structure).@require annotations).legacy/ directory.mix-manifest.json with Chiji’s release manifests.{{ chiji.release.dist() }}.composer require chigix/chiji:~1.0.0
// app/Providers/ChijiServiceProvider.php
namespace App\Providers;
use Chigi\Chiji\Project\Project;
use Illuminate\Support\ServiceProvider;
class ChijiServiceProvider extends ServiceProvider {
public function register() {
$project = new Project(base_path('chiji-config.php'));
$project->register();
}
}
// app/Http/Kernel.php
protected $middlewareGroups = [
'web' => [
// ...
\App\Http\Middleware\PreprocessChijiAssets::class,
],
];
routes/web.php to serve Chiji-processed assets:
Route::get('/assets/{path}', [ChijiAssetController::class, 'serve']);
| Feature | Chiji Support | Laravel Native Support | Workaround Needed? |
|---|---|---|---|
| LESS/Sass | Yes | Yes (Mix/Vite) | Yes (configure roads) |
| JS Minification | Yes | Yes (Mix/Vite) | Yes (custom roadmap) |
| Bower/NPM | Yes | Yes (Mix) | Yes (manual bower.json) |
| ES6 Modules | No | Yes (Vite) | No (blocker) |
| Hot Reloading | No | Yes (Vite) | No (blocker) |
| Twig/Blade | Yes | Yes | Yes (custom Twig extension) |
| Artisan Commands | No | Yes | Yes (custom commands) |
| PHP 8.1+ | No (5.4+) | Yes | No (blocker) |
How can I help you explore Laravel packages today?