рд╕рд┐рдореНрдлрдиреА 5 рдмрдВрдбрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ? рднрд╛рдЧ 1. рдиреНрдпреВрдирддрдо рдмрдВрдбрд▓

рдЖрдЗрдП рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХреЛ рд░реЛрдХрдиреЗ рдФрд░ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕рд┐рдореНрдлрдиреА 5 рдкреНрд▓рдЧ-рдЗрди рдмрдВрдбрд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдмрдВрдбрд▓ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛, рдПрдХ рдиреНрдпреВрдирддрдо рдмрдВрдбрд▓ рдмрдирд╛рдиреЗ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдмрдВрдбрд▓ рд░рд┐рд▓реАрдЬ рдЪрдХреНрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдореЛ рдЖрд╡реЗрджрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рд╕реЗ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдЧреАред


рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ:


  • рдмрдВрдбрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
  • рдЙрджрд╛рд╣рд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛: рдХреИрд▓реЗрдВрдбрд░
  • рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ: рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ 2 рддрд░реАрдХреЗ
  • рдПрдХ рдиреНрдпреВрдирддрдо рдмрдВрдбрд▓ рдмрдирд╛рдПрдВ
  • рдПрдХ рдмрдВрдбрд▓ рдХреЛ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреЛрдбрд╝рдирд╛

рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕рд╛рдордЧреНрд░реА

рдПрдХ рдмрдВрдбрд▓ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?


рдЖрдкрдХреЛ рд╕рд┐рдореНрдлрдиреА рдмрдВрдбрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рддрдм (рдФрд░ рдХреЗрд╡рд▓ рддрдм) рд╣реЛрдЧреА рдЬрдм рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХреЛрдб рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдердХ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВред рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ, рдПрдХ рд╕рдордЭ рдЖрддреА рд╣реИ рдХрд┐ рдХреЛрдб рдХреЛ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдкреНрд▓рдЧ-рдЗрди рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рд╕рд┐рдореНрдлрдиреА рдмрдВрдбрд▓ - рдпрд╣ рд╕рд┐рдореНрдлрдиреА рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдРрд╕рд╛ рдореЙрдбреНрдпреВрд▓ рд╣реИред


рдмрдВрдбрд▓ рд╕реНрдЯреЗрд░реЙрдпрдб рд╕рд┐рдореНрдлрдиреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп PHP рдХреЛрдб рдХрд╛ рдПрдХ рдкреИрдХреЗрдЬ рд╣реИред

рдмрдВрдбрд▓ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдпрдорд┐рдд PHP рдкреИрдХреЗрдЬреЛрдВ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЖрдорддреМрд░ рдкрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдореЗрдВ рдПрдХ рд╕рд┐рдореНрдлрдиреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВред рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╛рдордХрд░рдг рд╕рдореНрдореЗрд▓рдиреЛрдВ рдФрд░ рдХреЛрдб рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдХреЗ, рдмрдВрдбрд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рд┐рдореНрдлрд╝рд░ рд╣реЛрд╕реНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХрдиреЗрдХреНрдЯ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмрдВрдбрд▓ рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдмрдВрдзрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ composerред


, тАФ . , DDD- .


KnpMenuBundle

Symfony: KnpMenuBundle.


, . , .


, "" , Symfony . - () , PHP-, Composer.


Example Project: Calendar


.



.


, . . , . - , .


, 10 .
: .
, , 12 .


, .


, , , . , , , composer update.


.


README.md .


:


  • Event
  • 2
  • , webpack-encore

.



, ?


тАФ , File -> New... -> Symfony Project. -, .


2 :


  1. , Symfony . , .


    , Symfony
    -
    -

  2. , . , ./bundles.


    ,
    -2 ( PhpStorm )
    IDE,: ,


, .



./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 рдХреЗ рдЕрдВрджрд░ рд╕реВрдХреНрд╖реНрдо рдкрд░реАрдХреНрд╖рдгред
рд░рд┐рд▓реАрдЬ рдЪрдХреНрд░, рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдЕрджреНрдпрддрди


All Articles