Как создать и хранить проект Symfony в Git

Tip

Несмотря на то, что эта запись специально для Git, те же общие принципы будут применяться, если вы храните ваш проект в субверсии.

Когда вы прочитаете Create your First Page in Symfony и ознакомитесь с использованием Symfony, вы без сомнений будете готовы начать ваш собственный проект. В этой статье вы узнаете, как наилучшим образом начать новый проект Symfony, который хранится с использованием системы управления контроля источников Git.

Начальная установка проекта

Для того, чтобы начать, вам понадобится скачать Symfony и запустить всё. Смотрите статью Installing & Setting up the Symfony Framework, чтобы узнать детали.

Когда ваш проект уже запущен, следуйте этим простым шагам:

  1. Инициализируйте ваше хранилище Git:

    1
    $ git init
    
  2. Добавьте все начальные файлы в Git:

    1
    $ git add .
    

    Tip

    Как вы могли заметить, не все файлы, которые были скачаны Composer в шаге 1, были фиксированы в Git. Определённые файлы и папки, такие как зависимости проекта (которыми управляет Composer), parameters.yml (который содержит чувствительную информацию вроде аккредитации БД), логи и файлы кеша, сброшенные ресурсы (которые автоматически создаются вашим проектом), не должны быть фиксированы в Git. Чтобы предотвратить вас от случайного фиксирования этих файлов и папок, стандартная версия поставляется с файлом под названием .gitignore, который содержит перечень файлов и папок, которые будут игнорироваться Git.

    Tip

    Вы также можете захотеть создать файл .gitignore, который может быть исползован по всей системе. Это позволит вам исключить файлы и папки для всех ваших проектов, созданных вашей интегрированной средой разработки или операционной системой. Для того, чтобы узнать детали, см. GitHub .gitignore.

  3. Создайте начальную фиксацию в вашем начатом проекте:

    1
    $ git commit -m "Initial commit"
    

На этом этапе у вас есть полностью функционирующий проект Symfony, который правильно фиксирован в Git. Вы можете немедленно приступить к разработке, фиксируя новые изменения в вашем хранилище Git.

Вы можете продолжнить следовать статье Create your First Page in Symfony, чтобы узнать больше о том, как конфигурировать и разрабатывать внутри вашего приложения.

Tip

Стандартная версия Symfony поставляется с примерами функциональности. Чтобы удалить пример кода, следуйте инструкциям в статье "/bundles/remove".

Managing Vendor Libraries with composer.json

How Does it Work?

Every Symfony project uses a group of third-party "vendor" libraries. One way or another the goal is to download these files into your vendor/ directory and, ideally, to give you some sane way to manage the exact version you need for each.

By default, these libraries are downloaded by running a composer install "downloader" binary. This composer file is from a library called Composer and you can read more about installing Composer globally.

The composer command reads from the composer.json file at the root of your project. This is an JSON-formatted file, which holds a list of each of the external packages you need, the version to be downloaded and more. composer also reads from a composer.lock file, which allows you to pin each library to an exact version. In fact, if a composer.lock file exists, the versions inside will override those in composer.json. To upgrade your libraries to new versions, run composer update.

Tip

If you want to add a new package to your application, run the composer require command:

1
$ composer require doctrine/doctrine-fixtures-bundle

To learn more about Composer, see GetComposer.org:

It's important to realize that these vendor libraries are not actually part of your repository. Instead, they're simply un-tracked files that are downloaded into the vendor/. But since all the information needed to download these files is saved in composer.json and composer.lock (which are stored in the repository), any other developer can use the project, run composer install, and download the exact same set of vendor libraries. This means that you're controlling exactly what each vendor library looks like, without needing to actually commit them to your repository.

So, whenever a developer uses your project, they should run the composer install script to ensure that all of the needed vendor libraries are downloaded.

Since Symfony is just a group of third-party libraries and third-party libraries are entirely controlled through composer.json and composer.lock, upgrading Symfony means simply upgrading each of these files to match their state in the latest Symfony Standard Edition.

Of course, if you've added new entries to composer.json, be sure to replace only the original parts (i.e. be sure not to also delete any of your custom entries).

Хранение вашего проекта на удалённом сервере

Теперь у вас есть полностью функционирующий проект Symfony, хранящийся в Git. Однако, в большинстве случаев, вам также захочется хранить ваш проект на удалённом сервере как для целей резервного копирования, так и для того, чтобы другие разработчики могли совместно работать над проектом.

Наиболее лёгкий способ хранить ваш проект на удалённом сервере - это через веб-сервис хостинга, вроде GitHub или Bitbucket. Конечно, существуют и другие сервисы, вы можете начать ваше исследование с сравнения сервисов хостинга.

В качестве альтернативы, вы можете сберегать ваше хранилище Git на любом другом сервере, создав базовое хранилище и направив к нему. Одной из библиотек, которая помогает управлять этим, является Gitolite.

Эта документация является переводом официальной документации Symfony и предоставляется по свободной лицензии CC BY-SA 3.0.