chillem / nucleus
Dope Game Core
Installs: 6
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 2
Language:CSS
Requires
- php: ^7.2
- adrianfalleiro/slim-cli-runner: ^2.4
- akrabat/ip-address-middleware: ^1.0
- chillem/dbug: dev-master
- dopesong/slim-whoops: ^2.2
- firebase/php-jwt: ^5.0
- guzzlehttp/guzzle: ^6.3
- illuminate/database: ^5.5
- league/climate: ^3.2
- league/event: ^2.1
- monolog/monolog: ^1.17
- pelago/emogrifier: ^2.0
- ramsey/uuid: ^3.7
- respect/validation: ^1.1
- robmorgan/phinx: ^0.9.2
- slim/csrf: ^0.8.2
- slim/flash: ^0.4.0
- slim/slim: 3.*@dev
- slim/twig-view: ^2.3
- swiftmailer/swiftmailer: ^6.0
- tuupola/slim-jwt-auth: ^2.3
- vlucas/phpdotenv: ^2.4.0
Requires (Dev)
This package is not auto-updated.
Last update: 2025-01-02 01:38:59 UTC
README
A Slim based PHP application scaffolding.
This is more than a framework, thus the word "scaffolding." Nucleus is a fully functional out-of-the-box web application. All you need to do is build your environment, define values in config/.env, run the database migrations and seeds, then your app is ready to go!
The major components and relevant documentation are below:
- Slim (framework) https://www.slimframework.com/
- Twig (templates) https://twig.symfony.com/
- Phinx (database migrations) https://phinx.org/
- Eloquent (ORM) https://laravel.com/docs/5.5/eloquent
- Monolog (logging) https://github.com/Seldaek/monolog
- Respect Validation (validation) https://github.com/Respect/Validation
- Whoops (error reporting) https://github.com/filp/whoops
- League\Event (event emitter) http://event.thephpleague.com/2.0/
- League\CLImate (CLI output formatting) http://climate.thephpleague.com/
- Swiftmailer (email) https://swiftmailer.symfony.com/
Requirements
- PHP >= 7.1
- Composer
- NPM
- MariaDB 10.1.30 or equivalent
Installation
php composer create-project chillem/nucleus [your-directory-name]
That command will create a new directory and clone Nucleus into it. Next you need to point a virtual host to the public/
directory and ensure that logs/
is writeable by your web server user.
Fetch the required NPM modules:
npm install
Copy config/env.dist
to config/.env
and edit that file with all of your required configuration values.
Next run the initial database migration to create the schema and populate some initial data:
php vendor/bin/phinx migrate -e development
If you want to insert the data that I initially use (some users and role associations) run the following:
php vendor/bin/phinx seed:run -s GlobalSettings
php vendor/bin/phinx seed:run -s Users
php vendor/bin/phinx seed:run -s Roles
php vendor/bin/phinx seed:run -s RoleUser
Use the CLU utility to deploy the default template:
bin/nucleate build
Finally, update composer.json
to reflect your application's details.
CLI Utility
v1.0.1-beta introduces a new semi-experimental feature -- a CLI command runner. The first functionality provider is that of a wrapper around those CLI scripts provided by other packages.
To run Phinx commands:
bin/nucleate db migrate -e development
To run PHPUnit:
bin/nucleate test
To run PHPCS:
bin/nucleate cs -n --standard=PSR1,PSR2 src/
bin/nucleate csfix -n --standard=PSR1,PSR2 src/
Anything else is passed directly through to the command runner. Commands are defined in src/Helpers/Commands
and
extend the BaseCommand class.
More information about commands can be found here: https://github.com/adrianfalleiro/slim-cli-runner (Note: I have chosen to use the nomenclature "command" rather than "task" for the sake of consistency.)
Contact
Email: cody.erekson@gmail.com