readMe.ru.md
composer require symbiotic/full
للعمل بشكل أسرع على الاستضافة دون تحسين PHP ، بناء في ملف واحد تكافلي/كامل
تم إنشاء الإطار لتبسيط تكامل التطبيقات الصغيرة المستقلة في CMS والأطر الأخرى ، وكذلك لتوسيع وظائف حزم الملحن.
الأيديولوجية هي نظام بيئي منفصل للتطبيقات الصغيرة للتعاون مع الأطر الأخرى والتكامل المريح للوظائف الإضافية.
هناك العديد من الحزم والتطبيقات المكتوبة بشكل منفصل توفر وظائف مفيدة ، ولديها منطق أعمالها الخاص ، وأحيانًا يكون لها واجهة ويب منفصلة خاصة بها.
في حزم Laravel ، في حزم Symfony ، في مختلف CMS في شكل الإضافات والإضافات ، كلها لها تنفيذها الخاص للتوجيه ، والأحداث ، والتخزين المؤقت ، وما إلى ذلك. ستكون الحزمة المكتوبة لـ Laravel لدمج إطار عمل آخر أو CMS ستكون مشكلة في معظم الحالات ، وفي بعض الحالات مستحيلة بسبب بعض التبعيات على الإطار.
يتعين على مطوري التطبيقات أنفسهم كتابة تعديلات لكل إطار و CMS ، مما يخلق الكثير من المشكلات ولا يغطي جميع النظم الإيكولوجية.
أيضًا ، يجب أن تقوم هذه التطبيقات بالتكاملات المختلفة في النظام:
وتشمل هذه التطبيقات:
تم تحسين الإطار للعمل مع كمية كبيرة من التطبيقات ، وكذلك للعمل كنظام فرعي للإطار الرئيسي.
كل تطبيق هو حزمة ملحن ، مع وصف إضافي مباشرة في ملف composer.json.
// If you are already using the framework, then you need to enable the symbiosis mode in the config
// In this mode of operation, the framework will respond only to requests related to it and will not block work for "other" requests.
$ config [ ' symbiosis ' ] = true ;يتم إرفاق الإطار من الملحن مباشرة إلى index.php.
$ basePath = dirname ( __DIR__ ); // root folder of the project
include_once $ basePath . ' /vendor/autoload.php ' ;
include $ basePath . ' /vendor/symbiotic/full/src/symbiotic.php ' ;
// Then the initialization code and the work of another framework can go on when the symbiosis mode is enabled...
//.... $laravel->handle();
$ basePath = dirname ( __DIR__ ); // root folder of the project
include_once $ basePath . ' /vendor/autoload.php ' ;
$ config = include $ basePath . ' /vendor/symbiotic/full/src/config.sample.php ' ;
//.. Redefining the configuration array
// Basic construction of the Core container
$ core = new Symbiotic Core Core ( $ config );
/**
* When installing the symbiotic/full package, a cached container is available
* Initialization in this case occurs through the Builder:
*/
$ cache = new Symbiotic Cache FilesystemCache ( $ config [ ' storage_path ' ] . ' /cache/core ' );
$ core = ( new Symbiotic Core ContainerBuilder ( $ cache ))
-> buildCore ( $ config );
// Starting request processing
$ core -> run ();
// Then the initialization code and the work of another framework can go on when the symbiosis mode is enabled...
// $laravel->handle(); الحد الأدنى لمخطط وصف التطبيق في ملف composer.json:
{
"name" : " vendor/package " ,
"require" : {
// ...
},
"autoload" : {
// ...
},
"extra" : {
"symbiotic" : {
"app" : {
// Application ID
"id" : " my_package_id " ,
// Routing provider
"routing" : " \ MyVendor \ MySuperPackage \ Routing " ,
// Basic namespace for application controllers
"controllers_namespace" : " \ MyVendor \ MySuperPackage \ Http \ Controllers "
}
}
}
}
{
"name" : " vendor/package " ,
"require" : {
// ...
},
"autoload" : {
// ...
},
// Adding a description of the package for the symbiotic
"extra" : {
"symbiotic" : {
// Package ID
"id" : " my_super_package " ,
// Application description, the package may not have an application section
"app" : {
// Application ID, specified without the prefix of the parent application
"id" : " image_optimizer " ,
// ID of the parent application (optional)
"parent_app" : " media " ,
// Application name, used in the application list and menu
"name" : " Media images optimizer " ,
// Routing class (optional)
"routing" : " \ MyVendor \ MySuperPackage \ Routing " ,
// Basic namespace for controllers (optional)
"controllers_namespace" : " \ Symbiotic \ Develop \ Controllers " ,
// Application providers (optional)
"providers" : [
" MyVendor \ MySuperPackage \ Providers \ AppProvider "
],
// Application container class (optional)
// Heir from \Symbiotic\App\Application
"app_class" : " MyVendor \ MySuperPackage \ MyAppContainer "
},
// Folder with static relative to the package root (will be accessible via the web) (optional)
"public_path" : " assets " ,
// Folder with templates and other resources (not accessible via the Web) (optional)
"resources_path" : " my_resources " ,
// Framework Core Extensions
// Bootstrappers (optional)
"bootstrappers" : [
" MyVendor \ MySuperPackage \ CoreBootstrap "
],
// Providers (optional)
"providers" : [
" MyVendor \ MySuperPackage \ MyDbProvider "
],
// Exclusion of kernel providers (optional)
"providers_exclude" : [
// Exclusion of providers from downloading
// For example, with two packages of the same library, it allows you to exclude unnecessary
],
// Event subscribers (optional)
"events" : {
"handlers" : {
"Symbiotic \ Form \ FormBuilder" : " MyVendor \ MyApp \ Events \ FilesystemFieldHandler " ,
"Symbiotic \ Settings \ FieldTypesRepository" : " MyVendor \ MyApp \ Events \ FieldsHandler " ,
"Symbiotic \ UIBackend \ Events \ MainSidebar" : " MyVendor \ MyApp \ Events \ Menu "
}
},
//Package settings fields (optional)
"settings_fields" : [
{
"title" : " Fields group 1 " ,
"name" : " group_1 " ,
"collapsed" : 0 ,
"type" : " group " ,
"fields" : [
{
"label" : " Field 1 " ,
"name" : " filed_name_1 " ,
"type" : " text "
},
{
"label" : " Select 1 " ,
"name" : " select_1 " ,
"type" : " select " ,
"variants" : {
"value1" : " title1 " ,
"value12" : " title2 "
}
},
{
"label" : " Boolean checkbox " ,
"name" : " debug " ,
"description" : " Debug mode " ,
"type" : " boolean "
}
]
}
],
// Default settings (optional)
"settings" : {
"filed_name_1" : " demo_value " ,
"select_1" : " value12 " ,
"debug" : " 0 "
},
// Console commands (optional)
"commands" : {
"worker" : " MyVendor \ MyApp \ Commands \ Worker " ,
"stop" : " MyVendor \ MyApp \ Commands \ Stop "
}
}
}
}
عند تكوين التطبيق ، لا يمكنك تحديد مسارات الإحصائيات والموارد ، ثم سيتم تعريف المسارات الافتراضية::
يجب أن تكون القوالب دائمًا في /view/ الدليل في مجلد الموارد!
يمكن تقسيم جميع الحزم للإطار إلى عدة فئات منطقية:
أي حزمة يمكن أن تجمع بين كل ما سبق.
لا يوجد هيكل إلزامي واضح ، يمكنك استخدام أي واحد. إذا كنت تقوم بتطبيق بناءً على حزمة الملحن (المكتبة) ، لتجنب الالتباس ، يوصى بوضع جميع التعليمات البرمجية للتطبيق في مجلد src/Symbiotic .
vendor/
-/my_vendor
-/my_package_name
-/assets - Public files
-/js
-/css
-/...
-/resources - Resources
-/views - View templates
-/...
-/src - php code
-/Http
-/Cоntrollers
-/...
-/Services
...
-/Routing.php
-/composer.json