easy-tool / easy-tool
A simple PHP framework built with composer
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:project
pkg:composer/easy-tool/easy-tool
Requires
- php: >=7.4
- easy-tool/framework: ~1.0
Requires (Dev)
This package is auto-updated.
Last update: 2025-10-05 04:04:05 UTC
README
This is a simple PHP framework built with Composer.
It uses below libraries:
- https://docs.laminas.dev/laminas-cache/
- https://docs.laminas.dev/laminas-db/
- https://docs.laminas.dev/laminas-di/
- https://docs.laminas.dev/laminas-session/
- https://symfony.com/doc/current/console.html
and follows below standards:
| Standard | Title | Description |
|---|---|---|
| PSR-1 | Basic Coding Standard | Passed PHP_CodeSniffer checking |
| PSR-3 | Logger Interface | Implements - \Psr\Log\AbstractLogger |
| PSR-4 | Autoloader | Use Composer as dependency management |
| PSR-6 | Caching Interface | Implements - \Psr\Cache\CacheItemPoolInterface- \Psr\Cache\CacheItemInterface |
| PSR-7 | HTTP message interfaces | Implements - \Psr\Http\Message\RequestInterface- \Psr\Http\Message\ResponseInterface- \Psr\Http\Message\StreamInterface- \Psr\Http\Message\UriInterface |
| PSR-11 | Container interface | Implements - \Psr\Container\ContainerInterface |
| PSR-12 | Extended Coding Style | Passed PHP_CodeSniffer checking |
| PSR-13 | Link definition interfaces | pending |
| PSR-14 | Event Dispatcher | Implements - \Psr\EventDispatcher\EventDispatcherInterface- \Psr\EventDispatcher\ListenerProviderInterface |
| PSR-15 | HTTP Server Request Handlers | Implements - \Psr\Http\Message\ServerRequestInterface- \Psr\Http\Server\RequestHandlerInterface |
| PSR-17 | HTTP Factories | Implements - \Psr\Http\Message\RequestFactoryInterface- \Psr\Http\Message\ResponseFactoryInterface- \Psr\Http\Message\StreamFactoryInterface- \Psr\Http\Message\UriFactoryInterface |
| PSR-18 | HTTP Client | Implements - \Psr\Http\Client\ClientInterface |
Environment Requirement
- PHP 7.4+
- MySQL 5.7+
Installation
Create a new folder as project root, execute below command to get source files.
composer create-project easy-tool/easy-tool .
File Structure
Application Structure
| Directory | Description |
|---|---|
app/config |
Contains application config files, see here for more details. |
app/modules |
Store local customized modules. For example, a customer module may be located at app/modules/Customer, with namespace prefix App\Customer\. |
bin |
There is a run file which is used to execute console command. |
pub |
Store files which can be accessed through internet. |
var |
Store temporary files like cache, log etc. |
vendor |
Composer library folder. |
Module Structure
File structure of each module is flexible, but some directries are still need to follow their rules:
| Directory | Description |
|---|---|
Command |
System retrieves instantiable classes, which extend Symfony\Component\Console\Command\Command, as console commands. |
Controller/Backend |
System retrieves backend controller classes from this folder. |
Controller/Frontend |
System retrieves frontend controller classes from this folder. |
Setup |
System retrieves instantiable classes, which extend EasyTool\Framework\App\Module\Setup\AbstractSetup, as setup scripts on runnig setup:upgrade command. |
config |
Module config files, see here for more details. |
Config Files
Application Config
| Filename | Description |
|---|---|
di.php |
Dependency injection configuration, click here to see file structure, check https://docs.laminas.dev/laminas-di/v3/config/ for more details. |
env.php |
Environment settings including route name, cache setting, database setting etc., click here to see file structure. |
events.php |
Event listener settings, click here to see file structure. |
middlewares.php |
Middleware class list for handling HTTP request, click here to see file structure. |
modules.php |
Module status. This file will be generated by system when cache is empty or disabled. |
Module Config
| Filename | Description |
|---|---|
api.php |
HTTP API route list. |
di.php |
Dependency injection configuration, check https://docs.laminas.dev/laminas-di/v3/config/ for more details. |
events.php |
Event listener settings, file structure is same with the application one. |
module.php |
Module informations including name and route (backend/frontend). |