This is an extended version of nette/sandbox focused on fast development with modern PHP and JS tools.
Wiki explains how to use present technologies with Nette Framework.
This sandbox is currently based on Nette 2.4
due to incompatibility of some extensions with Nette 3
.
Install the gulp
command
sudo npm install --global gulp-cli
Create a new project using composer
composer create-project webrouse/n-sandbox path/to/install
cd path/to/install
Install JavaScript dependencies using npm
npm install
Run serve
task and profit
gulp serve
Visit http://localhost:3000/checker
to check minimal requirements, if some issues, install the missing extensions.
Visit http://localhost:3000
in your browser to see the welcome page.
The serve
task:
- includes default and watch tasks
- checks coding standards for
php
,js
andscss
files - compiles
js
,scss
files and other assets - runs the PHP built-in webserver on
localhost:8000
using project php.ini - runs Browsersync server on
localhost:3000
that proxy requests to the PHP server - watches for changes and then check + recompile assets
You can append --silent
to suppress unnecessary output
gulp serve --silent
You can append --fix
flag to automatically fix coding standards issues:
gulp --fix
gulp lint --fix
gulp serve --fix
To one-shot assets check and compilation run the default
task:
gulp
For more information, see Tutorial or List of all tasks.
- Gulp task runner
- Cache busting of all assets with gulp-rev and n-asset-macro
- Rollup + Babel compile next generation ES6 scripts to browser-compatible JavaScript
- EsLint with Airbnb JS rules check scripts coding standards
- UglifyEs compresses scripts in production mode
- Nittro client-side framework for Nette
- Sass compiles scss stylesheets to css
- SassLint + Airbnb CSS rules check styles coding standards
- Autoprefixer adds css vendor prefixes according to your browserslist config
- Cssnano compresses css in production mode
- Source maps
- Browsersync for synchronised development and testing in multiple browsers and devices
- ECS checks nette/coding-standard in PHP files
- Localization with server-side and client-side support, only used messages are extracted to JavaScript locales
- Menu component extension
- Monolog extension for simple logging to various targets
- Git hooks mapped to gulp tasks
- SVG icons
- Favicon and touch icons generation from SVG
Wiki explains how to use present technologies and tools.
Any improvements to the code or documentation are welcome.
The goal is to create a skeleton that allows comfortable development without affecting the application speed.
Create test for each Gulp task with shunit2.
Nette: New BSD License or GPL 2.0 or 3.0