рд╕рд┐рдореНрдлрдиреА 5 рдмрдВрдбрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ? рднрд╛рдЧ 7. рд░рд┐рд▓реАрдЬ рдЪрдХреНрд░, рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдЕрджреНрдпрддрди

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


рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ, рд╣рдордиреЗ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдХреЛрдб рдХреЛ рдПрдХ рдкреВрд░реНрдг рдмрдВрдбрд▓ рдореЗрдВ рд▓рд┐рдпрд╛, рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рдЕрдВрддрд┐рдо рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдмрдВрдбрд▓ рдЬреАрд╡рди рдЪрдХреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ: рд╕реНрдерд╛рдкрдирд╛ рд╕реЗ рд░рд┐рд▓реАрдЬ рдЪрдХреНрд░ рддрдХред


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ:


  • README.md
  • рд╕реНрдерд╛рдкрдирд╛: рд╕рдВрдЧреАрддрдХрд╛рд░, рдлреНрд▓реЗрдХреНрд╕ рд╡реНрдпрдВрдЬрдиреЛрдВ, рдХрдВрд╕реЛрд▓ рдХрдорд╛рдВрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ
  • рд░рд┐рд▓реАрдЬ рдЪрдХреНрд░, рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рд░рд┐рд▓реАрдЬ
  • рд╢рдмреНрджрд╛рд░реНрде рд╕рдВрд╕реНрдХрд░рдг
  • CHANGELOG.md рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛

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

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


рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ README.mdред рдЖрдкрдХреЛ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг 7-рд╕рдкреЛрд░реНрдЯ рд╢рд╛рдЦрд╛ рдореЗрдВ рдорд┐рд▓реЗрдЧрд╛ ред


рдЕрд╕реНрд╡реАрдХрд░рдг


┬л┬╗,   ,   . ,  .



, composer:


composer require bravik/calendar-bundle

:


  1. vendors
  2. composer- Symfony Flex, config/bundles.php.

. , - CalendarBundle:


  • - . , config/packages/ - . ?
  • , Doctrine. , , . ?
  • тАФ , . , , . . : composer Symfony , , npm , package.json . .

, ?


README.md


. , : README.md .


, , . .


, . , .


Best Practices for Reusable Bundles


Symfony Flex


Symfony , . , - , ENV-, .gitignore- .


composer Symfony Flex. - , . , , - . .


, . , , , .gitignore, ENV-, .

Symfony Flex? open-source Flex , .


, . : Symfony Contribution- Symfony. Contrib , , .


, . :


Symfony Flex Private Repositories тАФ Fabien Potencier, 2017
Symfony 4 Using Private Recipes with Flex тАФ Sebastian Sellmeier, 2018
Symfony Flex Private Recipes: , тАФ , 2017


, :


  1. 1.5-2
  2. Flex Server , 249 EUR .
  3. Flex Server packagist, .
  4. Flex Server MIT BSD
  5. , . 1.5 .



Symfony Flex Symfony open-source Symfony-, .


CLI- Symfony


, README.md


: .


mybundle/src/Command/InstallCommand.php:


<?php

namespace bravik\CalendarBundle\Command;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Filesystem\Filesystem;

class InstallCommand extends Command
{
    protected static $defaultName = 'bravik:calendar:install';

    /** @var Filesystem */
    private $filesystem;

    private $projectDir;

    public function __construct(Filesystem $filesystem, string $projectDir)
    {
        parent::__construct();

        $this->filesystem = $filesystem;
        $this->projectDir = $projectDir;
    }

    protected function execute(InputInterface $input, OutputInterface $output): int
    {
        $output->writeln('Installing bravik/CalendarBundle...');

        $this->initConfig($output);

        //    
        // ...

        return 0;
    }

    private function initConfig(OutputInterface $output): void
    {
        // Create default config if not exists
        $bundleConfigFilename = $this->projectDir
            . DIRECTORY_SEPARATOR . 'config'
            . DIRECTORY_SEPARATOR . 'packages'
            . DIRECTORY_SEPARATOR . 'calendar.yaml'
        ;
        if ($this->filesystem->exists($bundleConfigFilename)) {
            $output->writeln('Config file already exists');

            return;
        }

        //      
        $config = <<<YAML
calendar:
  enable_soft_delete: true
YAML;
        $this->filesystem->appendToFile($bundleConfigFilename, $config);

        $output->writeln('Config created: "config/packages/calendar.yaml"');

    }
}

, , , .


. , . .


, Symfony, shell-script.



, . , .


, CHANGELOG.md. , :



, , . , , .


:


<major>.<minor>.<patch>

тАФ .


:


  • , , .
  • , , .
  • -, , .


Composer , , - .


CalendarBundle.


?


composer.json:


{
    "name": "bravik/calendar-bundle",
    "version": "0.1.0",
    ...
}

, Composer git-. , . :


git tag v0.1.0

composer.json тАФ composer .


?


composer.json - :


"require": {
    "bravik/calendar-bundle": "^0.1.0",
    ...
},

^ composer , :


  • > 1.0.0 2.0.0.
  •   1.0.0   ┬л ┬╗, -.

> 0.1.0 < 0.2.0.


?


bundles/CalendarBundle/composer.json :


{
    "version": "0.1.1",
}

:


composer outdated


. тАФ , тАФ . , .


:


{
    "version": "0.2.1",
}


Composer . , . composer , require composer.json -.


?


composer update

.


, Composer


CHANGELOG.md


, , . . . CHANGELOG.md


?


, . , . , тАФ , .


(  ┬л  ┬╗ 0.X.X) . , . CHANGELOG.md тАФ , . !


CHANGElOG.md, .


:


# CHANGELOG
      

[BC] -   breaking changes

[BugFix] -   

## Unreleased
     
 * CAL-5 [BC]  
 * CAL-5    

## [0.2.0] (2020-04-06)
 * CAL-5 [BC]     
    -       `calendar_bundle.exporter`
 * CAL-6 [BC]     
    -   ,  ,        X  Y.        SQL  "XXX"
 * CAL-7   

## [0.1.1] (2020-03-30)
* CAL-4 [BugFix]      

## [0.1.0] (2020-02-15)
* CAL-1   
* CAL-2   
* CAL-3   
* [BugFix] Editor should initialize blocks only when they change

CHANGELOG.md symfony/framework-bundle. Symfony : . UPGRADE.md Symfony 4 Symfony 5.



Doctrine .


. , . тАФ .


- : - .


SQL , , ?


.


, , .



      ,   .    тАФ  .


7-support.



1.
2.
3. : , , JS
4.
5.
6. ,
7. ,


All Articles