Перевод: Contao быстрая разработка и разворачивание проекта
Перевод частичный: Интеграция Contao с Rails Asset Pipeline, Compass и Capistrano - http://technogate.github.io/contao/
- Contao CMS
- Rails Asset Pipline
- Compass
- Capistrano
См. документацию Compass по Sprites.</div>
Для разворачивания, сначала нужно настроить сервер, если это ваш сервер на Ngnix (Шаблоны Apache будут добавлены позже) вы можете создать файл конфигурации для вашего нового сайта, добавить пользователя в БД и создать БД командой:
Перед разворачиванием нежно задать структуру проекта, файл localconfig.php, .htaccess, чтобы это сделать запусти команду
Вам не нужны SSH или phpMyAdmin для экспорта или импорта резервной копии базы, в самом деле capistrano уже знает учетные данные доступа к базе, так что мы добавили несколько заданий для упрощения этого процесса.
Чтобы импортировать базу данных из резервной копии вы можете использовать задачу db:import. Это полезно для разворачивания сайта, который был в разработке на локальной машине.
Запомните: все следующие команды могут принимать первый аргумент "стадия разработки", когда он пропущен используется установленный в default_stage.
<Например, для импорта /path/to/project.sql используйте команду
contao_template
- Contao CMS
- Rails Asset Pipline
- Compass
- Capistrano
Contao
Этот gem поможет быстро разработать сайт на Contao CMS, которая имеет встроенную поддержку Sass, Compass, CoffeeScript, Jasmine и Capistrano.
Также полезная возможность хешированные URL на материалы при помощи расширения Contao Assets, оно добавляет MD5 к адресу URL
<link rel="stylesheet" type="text/css" href="/resources/application-c6e2457d9cc ce0f344c50e5bcc12fcdc.css" />
<script type="text/javascript" src="/resources/application-327af3660470 fb1c3f8e6593670cfc1e.js"></script>Все адреса изображений в CSS файле также хешированя, так что когда вы выкладываете на сервер новую версию картинки и/или CSS, вы всегда уверены, что ваши посетители не получат кешированную копию ваших файлов.
div
+background(image-url('body.jpg') no-repeat top center)Создаст:
div {
background: url(/resources/body-fc4a0f5f0b0f9ceec32bde5d15928467.jpg) no-repeat top center;
}Compass дает мощь вашему CSS, одна из наиболее востребованных функций это спрайты, это так классно иметь один PNG файл для всех фонов, генерированный CSS так выглядит
div +background(sprite($background, body))
Создаст:
div {
background: url(/resources/background-sbd69a8307b-a00c8f7a8536397c6279726316eae16f.png) 0 -3089px;
}См. документацию Compass по Sprites.</div>
И наконец, интеграция с Capistrano позволяет вам быстро развернуть все, скопировать материалы, импортировать базу данных и даже загрузить медиафайлы (картинки, PDF) и все из командной строки Capistrano.
Требования к установке
Перед установкой gem, удостоверьтесь что у вас Ruby версия 1.9.2 или выше т.к. этот Gem и большинство зависимостей не поддерживают Ruby 1.8, проверь версию так:
ruby --version
Обязательно установите версию 1.9 по инструкции Rbenv Installer project.
Contao зависит от Qt (для безболезненного тестирования javascript используя jasmine и jasmine-headless-webkit, как установить смотри Capybara Webkit Installation)
Установка
Установи Contao командой
gem install contao
Не забудь запустить rbenv rehash, если используешь rbenv, т.к. этот gem созадет исполняемые файл.
Имя базы данных
Локально имя базы данных такое как и приложения, т.е. если проект назвал my_project, то и БД будет также называться.
На сервере, Capistrano добавит к имени среду окружения в которой произойдет разворачивание(см. раздел Разворачивание ниже для получения подробностей), т.е. если проект назван my_project и среда разворачивания staging, имя БД будет my_project_staging
Использование
Создание файла конфигурации
Для начала использования Contao, исполняю команду
contao generate config
и следую инструкциям на экране.
Создать новый проект
Просто выполни команду:
contao new /path/to/my_project
Эта команд создаст приложение с именем my_project в каталоге /path/to, имя приложения очень важно особенно для базы данных, см. секцию Имя базы данных ниже для подробностей.
Инициализация проекта
Как только генератор проекта завершит перейди в созданный каталог проекта и подготовьте Contao запуском команды
bundle exec rake contao:bootstrap
Теперь перейдем /contao/install.php или просто перейдите на сайт и вас перенаправит к установочному скрипту, далее это обычная процедура установки Contao, см. руководство Contao.
Работаем с проектом
Чтобы работать с этой версией Contao, сначала поймите как она реально работает, см. структуру проекта для подробностей об организации файлов
Contao интегрирован с Rails, реально только функциональность asset pipeline используется, Compass также интегрирован в проект, так что вы можете разрабатывать ваш CSS используя функции Compass и mixins также как sprites.
Для начала работы запусти сервер rails командой
bundle exec foreman start
Запустит процесс на порту 9876 и будет давать материалы оттуда, расширение Contao Assets автоматом определяет, что вы работаете в окружении для разработки (development) и будет брать материал прямо с rails сервер.
Разворачивание
Введение
Перед разворачивание проекта, нужно отредактировать файл конфигурации Capistrano в config/deploy.rb и config/deploy/development.rb.
Для обычного проекта отслеживаемого Git, не надо редактировать config/deploy.rb, но нужно редактировать config/deploy/development.rb который автодокументируется.
Многостадийность
Capistrano имеет поддержку многих стадий, можете иметь стадии development, staging, production или любый другие, всего то надо указать имя стадии в config/deploy.rb
set :stages, ['development', 'staging', 'production']
и файл конфигурации с именем стадии расположен в config/deploy/, Template настроен для стадий development, staging и production, но имеет только один файл конфигурации для development, для настройки другой стадии просто скопируй файл конфигурации development в нужную стадию.
Подготовка сервера
Для разворачивания, сначала нужно настроить сервер, если это ваш сервер на Ngnix (Шаблоны Apache будут добавлены позже) вы можете создать файл конфигурации для вашего нового сайта, добавить пользователя в БД и создать БД командой:
bundle exec cap development deploy:server:setup
Этот шаг можно пропустить, если вы используете хостинг, то эту команду не запустить - нет прав root.
Прим.: эта команд должна использоваться единожды на стадию проекта.
Подготовка проекта
Перед разворачиванием нежно задать структуру проекта, файл localconfig.php, .htaccess, чтобы это сделать запусти команду
bundle exec cap development deploy:setup
Прим.: эта команд должна использоваться единожды на стадию проекта.
<Развернуть проект
Развернуть проект командой
bundle exec cap development deploy
Многстадийность в командах
Все команды имеют первый аргумент - название стадии, для разворачивания в другую стадию просто укажите другое имя стадии.
Шаблон Contao уже настроен по умолчанию на стадию development
set :default_stage, :development
Так что если пропустить имя стадии при вызове cap
bundle exec cap deploy
Будет произведен вызов с названием стадии по-умолчанию (например, default_stage: development)
Полезные задания Capistrano
Импорт и экспорт базы данных
Вам не нужны SSH или phpMyAdmin для экспорта или импорта резервной копии базы, в самом деле capistrano уже знает учетные данные доступа к базе, так что мы добавили несколько заданий для упрощения этого процесса.
Импортировать базу данных
Чтобы импортировать базу данных из резервной копии вы можете использовать задачу db:import. Это полезно для разворачивания сайта, который был в разработке на локальной машине.
Запомните: все следующие команды могут принимать первый аргумент "стадия разработки", когда он пропущен используется установленный в default_stage.
<Например, для импорта /path/to/project.sql используйте команду
bundle exec cap db:import /path/to/project.sql
Эта команда сначала делает резервную копию вашей БД на сервере (см. /backups каталог в каталоге вашего проекта), и затем импортирует project.sql в неё, однако вы сами должны убедиться в наличии SQL выражений DROP TABLE IF EXISTS в вашем файле резервной копии, чтобы перезаписывать таблицы.
Экспортировать базу данных
Очень полезно экспортировать БД при необходимости перенести изменения с сервера на локальную машину разработчика
bundle exec cap db:export
Эта команда скачает файл резервной копии SQL базы данных в каталог /tmp, но вы можете указать имя вручную. Также эта команде сделает резервную копию БД на сервере.
TODO
Структура проекта
contao_template
├── Capfile ├── Gemfile ├── Procfile ├── Rakefile ├── app │ └── assets │ ├── images │ ├── javascripts │ │ └── application.js │ └── stylesheets │ ├── application.css.sass │ ├── definitions │ │ ├── _all.sass │ │ ├── _mixins.sass │ │ ├── _sprites.sass │ │ └── _variables.sass │ └── thirdparty │ └── _pie.sass ├── config │ ├── application.rb │ ├── boot.rb │ ├── compass.rb │ ├── deploy │ │ ├── development.rb │ │ └── production.rb │ ├── deploy.rb │ ├── environment.rb │ ├── environments │ │ ├── development.rb │ │ ├── production.rb │ │ └── test.rb │ ├── examples │ │ └── localconfig.php.erb │ ├── initializers │ │ ├── secret_token.rb │ │ └── session_store.rb │ └── routes.rb ├── config.ru ├── contao │ ├── plugins │ ├── system │ │ ├── drivers │ │ ├── libraries │ │ │ ├── Spyc.php -> ../../../lib/contao/libraries/spyc/spyc.php │ │ └── modules │ │ ├── BackupDB │ │ ├── assets │ │ ├── efg │ │ ├── favicon │ │ ├── googleanalytics │ │ ├── listing │ │ ├── parentslist │ │ ├── subcolumns │ │ ├── template-override │ │ ├── videobox │ │ └── videobox_vimeo ├── lib │ ├── assets │ │ └── javascripts │ │ ├── form_default_values │ │ │ ├── autoload.js.coffee │ │ │ └── main.js.coffee │ │ ├── form_default_values.js │ │ └── slider.js.coffee │ ├── contao │ │ └── libraries │ │ └── spyc │ └── tasks ├── public ├── script │ └── rails ├── spec │ └── javascripts │ ├── fixtures │ │ └── slider.html │ ├── helpers │ │ └── spec_helper.js.coffee │ ├── slider_spec.coffee │ └── support │ └── jasmine.yml └── vendor └── assets ├── javascripts └── stylesheets