рдЖрдЗрдП рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХреЛ рд░реЛрдХрдиреЗ рдФрд░ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕рд┐рдореНрдлрдиреА 5 рдкреНрд▓рдЧ-рдЗрди рдмрдВрдбрд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдмрдВрдбрд▓ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛, рдПрдХ рдиреНрдпреВрдирддрдо рдмрдВрдбрд▓ рдмрдирд╛рдиреЗ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдмрдВрдбрд▓ рд░рд┐рд▓реАрдЬ рдЪрдХреНрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдореЛ рдЖрд╡реЗрджрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рд╕реЗ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдЧреАред
рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ:
- рдмрдВрдбрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
- рдЙрджрд╛рд╣рд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛: рдХреИрд▓реЗрдВрдбрд░
- рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ: рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ 2 рддрд░реАрдХреЗ
- рдПрдХ рдиреНрдпреВрдирддрдо рдмрдВрдбрд▓ рдмрдирд╛рдПрдВ
- рдПрдХ рдмрдВрдбрд▓ рдХреЛ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреЛрдбрд╝рдирд╛
рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕рд╛рдордЧреНрд░реА рдПрдХ рдмрдВрдбрд▓ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
рдЖрдкрдХреЛ рд╕рд┐рдореНрдлрдиреА рдмрдВрдбрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рддрдм (рдФрд░ рдХреЗрд╡рд▓ рддрдм) рд╣реЛрдЧреА рдЬрдм рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХреЛрдб рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдердХ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВред рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ, рдПрдХ рд╕рдордЭ рдЖрддреА рд╣реИ рдХрд┐ рдХреЛрдб рдХреЛ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдкреНрд▓рдЧ-рдЗрди рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рд╕рд┐рдореНрдлрдиреА рдмрдВрдбрд▓ - рдпрд╣ рд╕рд┐рдореНрдлрдиреА рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдРрд╕рд╛ рдореЙрдбреНрдпреВрд▓ рд╣реИред
рдмрдВрдбрд▓ рд╕реНрдЯреЗрд░реЙрдпрдб рд╕рд┐рдореНрдлрдиреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп PHP рдХреЛрдб рдХрд╛ рдПрдХ рдкреИрдХреЗрдЬ рд╣реИред
рдмрдВрдбрд▓ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдпрдорд┐рдд PHP рдкреИрдХреЗрдЬреЛрдВ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЖрдорддреМрд░ рдкрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдореЗрдВ рдПрдХ рд╕рд┐рдореНрдлрдиреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВред рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╛рдордХрд░рдг рд╕рдореНрдореЗрд▓рдиреЛрдВ рдФрд░ рдХреЛрдб рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдХреЗ, рдмрдВрдбрд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рд┐рдореНрдлрд╝рд░ рд╣реЛрд╕реНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХрдиреЗрдХреНрдЯ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмрдВрдбрд▓ рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдмрдВрдзрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ composer
ред
, тАФ . , DDD- .
Example Project: Calendar
.

.
, . . , . - , .
, 10 .
: .
, , 12 .
, .
, , , . , , , composer update
.
.
README.md
.
:
.
, ?
тАФ , File -> New... -> Symfony Project
. -, .
2 :
, Symfony . , .
, . , ./bundles
.
, .
./bundles
CalendarBundle
,
:
src/CalendarBundle.php
composer.json
2 !
composer.json
composer.json
:
{
"name": "bravik/calendar-bundle",
"version": "0.1.0",
"type": "symfony-bundle",
"description": "Symfony bundles tutorial example project",
"license": "proprietary",
"require": {
"php": "^7.3"
},
"require-dev": {
},
"config": {
"sort-packages": true
},
"autoload": {
"psr-4": {
"bravik\\CalendarBundle\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"bravik\\CalendarBundle\\Tests\\": "tests/"
}
},
"scripts": {
"test" : "./vendor/bin/simple-phpunit"
},
"extra": {
"symfony": {
"allow-contrib": false,
"require": "5.0.*"
}
}
}
:
"name": "bravik/calendar-bundle",
"description": "Health check bundle",
. . composer
, vendor/bravik/calendar-bundle
"type": "symfony-bundle"
Symfony, . composer
, тАФ Symfony Flex
, тАФ -, ( bundles.php
), "".
тАФ Symfony Flex, , .
"version": "0.1.0",
. composer . .
"autoload": {
"psr-4": {
"bravik\\CalendarBundle\\": "src"
}
},
"autoload-dev": {
"psr-4": {
"bravik\\CalendarBundle\\Tests\\": "tests"
}
},
composer. <VendorName>/<CategoryName>/<BundleName>Bundle
.
composer, bravik\\CalendarBundle
./src
composer.json
. -, , use <BundleNamespace>/<BundleClass>
.
dev
-. .
"require": {
"php": "^7.3"
},
"require-dev": {},
require
require-dev
prod dev . - . composer
. php
.
.
./src
CalendarBundle.php
:
<?php
namespace bravik\CalendarBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class CalendarBundle extends Bundle
{
}
. .
: <BundleName>Bundle.php
, тАФ Bundle
. , Symfony , ( ).
,
.
bravik\CalendarBundle
, composer.json
. .
-
composer
:
composer require bravik/calendar-bundle
, composer
: .
, repositories
composer.json
.
, bundles/CalendarBundle
:
"repositories": [
{
"type" : "path",
"url" : "./bundles/CalendarBundle"
}
],
vendor
, bravik/calendar-bundle
, . vendors
, .
, git- :
"repositories": [
{
"type" : "vcs",
"url" : "git@bitbucket.org:bravik/calendarbundle.git"
}
],
composer
git- vendors/bravik/calendar-bundle
.
composer.
composer require bravik/calendar-bundle
composer.json
, . , config/bundles.php
:
<?php
return [
bravik\CalendarBundle\CalendarBundle::class => ['all' => true],
];
, !
-, ./bundles
.gitignore
, bundles/CalendarBundle
: composer init
. , .
, " " - - , .
, .
- Symfony 2 :
composer.json
MyBundle
. - - IDE GIT-, composer.
- , .
- , .
Example Project 1-bundle-mockup.
, , , DI-.
:
рднрд╛рдЧ 1. рдиреНрдпреВрдирддрдо рдмрдВрдбрд▓
рднрд╛рдЧ 2. рд╣рдо рдХреЛрдб рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рдмрдВрдбрд▓ рдореЗрдВ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВред
рднрд╛рдЧ 3. рдореЗрдЬрдмрд╛рди рдХреЗ рд╕рд╛рде рдмрдВрдбрд▓ рдХрд╛ рдПрдХреАрдХрд░рдг: рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕, рд╢реИрд▓реА, JS
рднрд╛рдЧ 4. рдмрдВрдбрд▓ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕
5. рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
рднрд╛рдЧ 6. рдкрд░реАрдХреНрд╖рдг, рдмрдВрдбрд▓ рднрд╛рдЧ 7 рдХреЗ рдЕрдВрджрд░ рд╕реВрдХреНрд╖реНрдо рдкрд░реАрдХреНрд╖рдгред
рд░рд┐рд▓реАрдЬ рдЪрдХреНрд░, рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдЕрджреНрдпрддрди