simpletine / hmvc-shield
Features a modular HMVC (Hierarchical Model-View-Controller) architecture for CodeIgniter 4, integrated CodeIgniter 4 Shield and built with AdminLTE, providing a robust foundation for scalable web applications.
Installs: 242
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 3
Forks: 3
Open Issues: 2
Language:CSS
Requires
- php: ^7.4 || ^8.0
- codeigniter4/framework: ^4.0
- codeigniter4/shield: dev-develop
Requires (Dev)
- codeigniter/coding-standard: ^1.7
- fakerphp/faker: ^1.23.1
- mikey179/vfsstream: ^1.6
- phpstan/phpstan: 2.0.x-dev
- phpunit/phpunit: ^9.1
- squizlabs/php_codesniffer: *
This package is auto-updated.
Last update: 2025-02-20 10:27:37 UTC
README
Codeigniter 4 HMVC
This repository features a modular HMVC (Hierarchical Model-View-Controller) architecture for CodeIgniter 4, integrated with the official authentication system, CodeIgniter 4 Shield. It also includes a comprehensive Admin Dashboard built with AdminLTE, providing a robust foundation for scalable and secure web applications.
Installation Guide
Create a project
composer create-project simpletine/codeigniter4-starter ci4_hmvc --stability=dev
Copy env
file and setup database environment
cp env .env
Run the app, using different port, add options --port=9000
php spark serve
Configuration
Install HMVC package
composer require simpletine/hmvc-shield
Setup Command Line
php spark simpletine:setup
Default Auth
email: super@admin.com password: password
Create User
Use command line to create a new user
php spark shield:user create
Notice
If you are using old versions, after composer update, you need to update the index.php
and spark
file to root folder (Upgrading to v4.4.8)
composer update cp vendor/codeigniter4/framework/public/index.php public/index.php cp vendor/codeigniter4/framework/spark spark
Module Commands
Commands available and funcationality
General
Create a new module named Blogs
php spark module:create Blogs
Clone a existing module of Blogs
and renamed to Items
php spark module:copy Blogs Items
Create a controller to module Blogs
named Categories.php
php spark module:controller Blogs Categories
Create a model to module Blogs
named Categories.php
php spark module:model Blogs Categories
Publisher
Publish require assets to public
folder
php spark publish:assets
Publish views with AdminLTE
to COnfig/Auth.php
php spark publish:views
Admin
Additional options for the commands
Create a new controller and view to Admin
module with AdminLTE
php spark module:controller Admin Users --admin
Modules Directory
App
├── Modules
│ └── Blogs
│ ├── Config
│ └── Routes.php
│ ├── Controllers
│ └── Blogs.php
│ ├── Models
│ └── Blogs.php
│ └── Views
│ └── index.php
└── ...
Route Group
Add new subroutes to blogs
named new
with method name
$routes->get('new', 'Blogs::new');
Sample of routes group after new subroutes
$routes->group( 'blogs', ['namespace' => '\Modules\Blogs\Controllers'], function ($routes) { $routes->get('/', 'Blogs::index'); $routes->get('new', 'Blogs::new'); } );
PHPCS
Default instance of containing all rules applicable for the CodeIgniter organization
composer run fix
PSR4
At App/Config/Autoload.php
, you can configure your custom namespace:
public $psr4 = [ "Blogs" => APPPATH . "Modules/Blogs", // Example // ... ];