Wallogit.com
2017 © Pedro PelΓ‘ez
ΠΠ°ΠΊΠ΅Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Laravel., (*1)
https://packagist.org/packages/kodicms/module-loader, (*2)
ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠ°Π½Π΄Ρ, (*3)
composer require "kodicms/module-loader:3.*", (*4)
ΠΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠ°ΠΊΠ΅Ρ Π² composer.json, (*5)
{
"require": {
...
"kodicms/module-loader": "3.*"
...
}
}
'providers' => [ ... KodiCMS\ModulesLoader\Providers\ModuleServiceProvider::class, ... ],
composer.json Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½
{
"autoload": {
...
"psr-4": {
...
"Modules\\" : "modules/"
},
...
},
}
app.php
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Ρ
ΡΠ°Π½ΡΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ modules, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ,
ΡΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΈΠ³ ΡΠ°ΠΉΠ» ΠΏΡΡΡ Π΄ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ Π΅Π³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½:, (*6)
return [
...
'modules' => [
'modulename', // Namespace: Modules\modulename, Path baseDir/modules/modulename
'ModuleName2' => [
'path' => {relative path to module},
'namespace' => '\\CustomNamespace\\ModuleName2\\'
]
]
...
];
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ KodiCMS\ModulesLoader\ModuleContainer, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅
ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΠΎΠ·Π΄Π°Π² Π΅Π³ΠΎ ΠΏΠΎ ΠΏΡΡΠΈ app\DefaultModuleContainer.php ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°Ρ
ΠΎΡΠΈΡΠ΅
ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» ModuleContainer.php Π² ΠΊΠΎΡΠ½Π΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΎΡ KodiCMS\ModulesLoader\ModuleContainer., (*7)
Assets - Π°ΡΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Ρ Π² public/cms/modules/{module}
config - ΠΊΠΎΠ½ΡΠΈΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΡΠ»ΠΈ Π² ΠΌΠΎΠ΄ΡΠ»ΡΡ
Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ ΡΠ°ΠΉΠ»Ρ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ, ΡΠΎ ΠΈΡ
ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΌΠ΅ΡΠ΄ΠΆΠΈΡΡΡConsole
Commands - ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΡ
ΠΊΠΎΠΌΠΏΠ°Π½Π΄Ρdatabase
migrations - ΡΠ°ΠΉΠ»Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ, Π±ΡΠ΄ΡΡ Π·Π°ΠΏΡΡΠ΅Π½Ρ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ modules:migrate
seeds
DatabaseSeeder.php - Π΅ΡΠ»ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΡΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠ΅Π½ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ modules:seed
Http
Controllers - ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρroutes.php - ΡΠΎΡΡΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π² Π½Π΅ΠΉΠΌΡΠΏΠ΅ΠΉΡ Modules\{module}
Providers
ModuleServiceProvider.php - Π‘Π΅ΡΠ²ΠΈΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠ΅Π½ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡresources
lang - Π€Π°ΠΉΠ»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ² Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Ρ, Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΠΎ ΠΊΠ»ΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π² Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ trans('{module}::file.key')
views - Π¨Π°Π±Π»ΠΎΠ½Ρ ΠΌΠΎΠ΄ΡΠ»Ρ, Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΠΎ ΠΊΠ»ΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π² Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ view('{module}::template')
ModuleContainer.php - ΠΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊΠ°ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΌΠΎΠ΄ΡΠ»Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΊΠ°Π·Π°Π½Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΡΠ½Π΅ ΠΏΡΡΠΈ ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΎΡ KodiCMS\ModulesLoader\ModuleContainer
php artisan modules:list - ΠΏΡΠΎΡΠΌΠΎΡΡ ΡΠΏΠΈΡΠΊΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ php artisan modules:migrate - Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ (ΠΠΎΡΡΡΠΏΠ½Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ migrate)
php artisan modules:seed - ΡΠΈΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉphp artisan modules:assets:publish - ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ assets ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ Assets Π² public/modules/{module}