dev-no-kage/project-initializer
Composer 安装命令:
composer create-project dev-no-kage/project-initializer
包简介
Projet PHP structuré avec une architecture MVC minimaliste et gestion de dépendances via YAML.
README 文档
README
✨ Un Starter Kit PHP Moderne
Un boilerplate élégant et flexible, conçu pour démarrer rapidement vos projets PHP. Il allie une architecture modulaire inspirée du DDD à une structure MVC minimaliste, avec une injection de dépendances simple via YAML et tous les composants essentiels pour construire une application propre et maintenable.
🚀 Fonctionnalités clés 🔧 Architecture hybride : Utilisez soit une structure MVC classique dans app/, soit une architecture modulaire évolutive dans src/ avec Controller, Service, Repository, etc.
🧠 Parfait pour évoluer d’un petit projet vers une application robuste.
⚙️ Injection de dépendances déclarative :
Définissez vos services dans un simple fichier YAML : app/config/services.yaml.
🔐 Chargement de configuration via DotEnv :
Centralisez vos variables sensibles dans .env, avec gestion automatique via vlucas/phpdotenv.
🧩 Autoloading PSR-4 :
Conforme à la norme PSR-4 grâce à Composer pour une organisation claire du code.
🗂️ Structure propre et flexible :
app/ : pour un démarrage rapide en MVC minimaliste
src/ : pour un découpage DDD ou hexagonal orienté métiers
core/ : noyau du système (injection, routing, configuration)
📁 Structure du projet
project-root/
├── app/
│ ├── config/ # fichiers YAML, .env, helpers
│ └── core/ # cœur du framework
│ ├── abstract/ # Les classes abstract reutilisable
│ ├── enums/ # Les enumerations pour les clé du routeur et classes du fichier services.yml
│ └── interface/ # les interface pour les contracts de methodes
├── public/ # point d'entrée (index.php)
├── src/ # la ou sera vos entity, controller, repository
├── composer.json
└── README.md
⚙️ Installation
- Cloner le dépôt (optionnel si vous utilisez create-project)
git clone https://github.com/gorguimarena/project-initializer.git cd project-initializer
- Créer un nouveau projet depuis le package Packagist
composer create-project dev-no-kage/project-initializer nom-du-projet cd nom-du-projet
- Installer les dépendances
composer install
- Configurer les variables d'environnement
cp app/config/.env.example .env 🛠️ Modifiez le fichier .env selon votre configuration locale (base de données, port, etc.).
- Démarrer un serveur local php -S localhost:8000 -t public
🧠 Comment ça marche ? 🔁 Injection de dépendances Le projet repose sur un conteneur de services défini dans app/config/services.yaml, où chaque classe peut déclarer ses dépendances à injecter automatiquement.
Exemple de définition :
MaClasse: class: App\Service\MaClasse argument: - App\Repository\AutreClasse
⚙️ Moteur d’injection interne Le système d’injection de dépendances est basé sur deux éléments principaux :
- services.yaml Le fichier central de déclaration des services :
Chaque entrée correspond à un service unique
Les dépendances sont injectées automatiquement par le moteur
✅ Ce système permet de découpler le code métier de la logique de création des objets, favorisant la maintenabilité et les tests.
🧱 Structure d’un service
CLE_UNIQUE: class: Namespace\De\La\Classe argument: [Liste, Des, Dépendances]
CLE_UNIQUE : identifiant du service (doit exister dans l’énum ClassName de app/core) class : nom complet de la classe avec son namespace argument : liste des arguments nécessaires au constructeur
- Syntaxe des arguments dans argument Les arguments peuvent être de différents types :
| Type | Syntaxe YAML | Interprétation |
|---|---|---|
| Service (classe) | - "@NOM_DU_SERVICE" |
Injection d’une autre classe déclarée |
| Variable d’environnement | - "%NOM_DE_LA_VAR%" |
declaré comme constance dans env.php |
| Valeur simple (texte/num) | - "valeur" |
Transmise telle quelle |
🔁 Exemples pratiques ✅ Injection sans dépendance
DATABASE:
class: DevNoKage\Core\Database
argument: []
✅ Injection d’un service
AUTH:
class: DevNoKage\Core\ClassAuth
argument:
- "@DATABASE"
✅ Injection de valeurs littérales
DATABASE:
class: DevNoKage\Core\Database
argument:
- "driver"
- "localhost"
- "5432"
- "dbname"
✅ Injection de variables d’environnement
DATABASE:
class: DevNoKage\Core\Database
argument:
- "%DB_DRIVER%"
- "%DB_HOST%"
- "%DB_PORT%"
- "%DB_NAME%"
📂 Fichier concerné : services.yml Déclare toutes tes classes et dépendances dans app/config/services.yml.
dev-no-kage/project-initializer 适用场景与选型建议
dev-no-kage/project-initializer 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 20 次下载、GitHub Stars 达 1, 最近一次更新时间为 2025 年 07 月 25 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「framework」 「yaml」 「php」 「bootstrap」 「mvc」 「lightweight」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 dev-no-kage/project-initializer 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 dev-no-kage/project-initializer 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 dev-no-kage/project-initializer 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
PHP Framework HLEB2 is the foundation of the web application. Provides ease of development and application performance.
SUML for PHP
SUML support for Symfony
provides an facade for php-yaml, syck and symphony/yaml so switching in between is easier
Especificação do formato Cnab240 e Cnab400 traduzida para Yaml
Just parse YAML content to array
统计信息
- 总下载量: 20
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 7
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-07-25