BALCMS - это Zend Framework и Dectrine ORM Powered CMS.
BALCMS отличается от других CMS, так как мы можем расширить его непосредственно, просто добавив новый модуль - или даже путем прямого изменения CMS напрямую (так как CMS - это просто модуль и серия зависимостей). Никакие другие CMS, о которых я знаю, фактически не позволяет разработчикам так легко расширять CMS, и все же, как правило, вы заблокированы в конкретной и ограниченной структуре плагина, которая действительно отстой, если вы пытаетесь создать масштабируемый и расширяемый CMS для пользовательских приложений. Таким образом, если вам не нравится что -то в BALCMS или вам нужно добавить новую функциональность, вы можете попасть туда напрямую и сделать это! Думайте об этом больше как о фундаменте, а не о блокировке. Это освобождает! BALCMS также является высококачественным программным обеспечением, оно следует религиозной практике.
BALCMS сильно зависит от командной строки. Если вы находитесь на платформе Unix/Mac/Linux, вы найдете установку и использование довольно простым. Если вы находитесь на платформе Windows, вы можете столкнуться с настоящей кривой обучения (и потребуется запускать команды через терминал Cygwin) - мы предлагаем получить Mac.
Никогда не будет графического графического интерфейса, чтобы заменить зависимость от командной строки, так как мы рассматриваем эту зависимость как оправданную как наилучшую практику. Как только вы познакомьтесь с этим, вы пройдете мимо. Теперь это расширяет возможности.
Для Windows вам нужно будет установить:
Для Unix/Mac/Linux вам нужно будет установить:
Эти установки предоставят вам следующие требования:
Во -первых, нам нужно убедиться, что ваша среда будет правильно настроена. Для этого прогона ./cli check-env . Если он не возвращает какие -либо сообщения об ошибках, то вы можете продолжить. Если это так, пожалуйста, пожалуйста, посетите сообщения. Если вы получите сообщение, в котором говорится, что ваша установка GIT не настроена, то самый простой способ настроить его - настройка новой бесплатной учетной записи на GitHub, создать с ними новый репозиторий, следуйте их инструкциям по использованию и настройке ./cli check-env - как только ваша установка GIT будет настройкой, так что, как только можно найти, что еще не найдет, если он не сможет что -то не найти. BALCMS.
Запустите следующие команды:
mkdir mywebsite
cd mywebsite
curl -OL http://github.com/balupton/balcms/raw/master/cli
./cli birth
Объяснение: Мы здесь делаем, так это создание нашего нового каталога веб -сайтов (папка), а затем получение интерфейса командной строки нашего приложения. Имея этот файл, мы можем запустить
./cli birth. Команда./cli birthфактически состоит из трех других важных команд, которые являются:
./cli init-new, который инициализирует наш местный репозиторий (как новый репозиторий) и захватывает ядро CMS./cli configure, которая получает зависимости и требования CMS и настраивает структуру каталога./cli install, которая устанавливает базу данных CMS, настраивает разрешения и запускает любые задания Cron.
Мы будем использовать эти команды и аналогичны позже.
В то время как это работает, вашему веб -сайту понадобится собственный публичный или частный репозиторий GIT. Вы можете создать один на GitHub (хотя, если вы хотите частную, вам понадобится платная учетная запись), или вы можете найти альтернативный частный хост GIT.
Как только эти команды запускаются, и ваш удаленный репозиторий GIT настроен. Мы хотим связать наш местный репозиторий с удаленным хранилищем. Мы делаем это, копировав URL нашего удаленного репозитория, он должен выглядеть как этот [email protected]:balupton/balcms.git . С этим мы запустим следующие команды:
git remote add origin {your git repos read/write url} ; make deploy
Объяснение: Вторая команда здесь
./cli deployотправит наши изменения от нашего филиала разработки в нашу стабильную филиал, а затем от стабильной ветви вmasterветвь. Наконец, он отправит все эти изменения в наш удаленный репозиторий.
Мы хотим отправить наши изменения в удаленный репозиторий, поскольку мы можем развернуть на нашем удаленном сервере (где наш веб -сайт фактически будет размещен и доступен). Другие преимущества также на случай, если наша среда развития будет проходить, у нас будет удаленное резервное копирование. Последнее преимущество и, возможно, самое лучшее, заключается в том, что если мы работаем с другими людьми, это позволяет нам беспрепятственно сотрудничать вместе.
Как только все это будет сделано, теперь вы сможете посетить свой новый веб -сайт BALCMS. Итак, давайте перейдем к нашему Localhost и в каталоге, в который мы его установили (например http://localhost/sites/mywebsite ).
Чтобы администрировать свой новый веб -сайт, вы пойдете на место admin на своем веб -сайте (например http://localhost/sites/mywebsite/admin ). Имя пользователя по умолчанию - admin , а пароль является random - они указаны в application/data/fixtures/data.yml , или вы можете изменить их, используя область администрирования пользователей.
Структура BALCMS основана на стандартной структуре модульной структуры Zend Framework с дополнительными расширениями для более легкой конфигурации и локализации, при поддержке тематической загрузки, загрузки носителя, изменением размера изображений из коробки.
Итак, давайте посмотрим на структуру:
.gitignore - Used to tell Git about the files that we do not want committed to our repository (e.g. cache files)
.htaccess - Used to tell Apache about how requests should be handled
application/
config/
data/
cache/
database/ - Contains our SQLite Databases
dump/
fixtures/ - Contains our Initial Database Data
logs/
schema/ - Contains our Database Structure
layouts/
models/ - Contains the Models we actually use, these inherit from the models in the following sub-directories
Bal/ - Core models included by the BalPHP Library
Balcms/ - Core models used by BalCMS (these typically inherit the Bal models)
Base/ - Autogenerated by Doctrine ORM
modules/
balcms/
config/ - Our module specific Configuration
controllers/ - Our module specific Business Logic
BackController.php - For our Administration/Back Area
FeedController.php - For our News/RSS/Atom/Subscription Feeds
FrontController.php - For our Public/Front Area
views/ - Our module specific View Logic
helpers/ - Contains our Standard Content Widgets (used within our posts)
scripts/ - Contains our View Scripts
default/ - Contains our Default/Base Modules (used for Error Handling)
cli - BalCMS's Command Line Interface
common/ - Used to contain our submodules/requirements/dependencies used by BalCMS (e.g. zend framework)
config.php
il8n/ - Contains our Localisation/Language files.
index.php
public/
images/
media/
cache/ - Used by the inbuilt bundlers (View Helpers: HeadScriptBundler, HeadLinkBundler)
scripts/
styles/
deleted/ - Where deleted files go (if we don't hard delete them)
image.php - Handles on-the-fly image resizing
images/ - Where the generated/compressed/resized images go
invoices/ - Used for our invoicing functionality (not documented)
uploads/ - Where user uploads go
scripts/
styles/
themes/ - Where our applications themes go, if you want to customise the look and feel of the application, this is where it's at.
albeo/ - The default theme. Creamy green.
balcms/ - The administration theme.
titan - A creamy brown theme.
README.md - This readme that you're reading right now.
robots.txt - What to tell Search Engines. Read up on google.
scripts/ - Contains scripts used by our CLI to perform specific actions
tests/ - Unit tests for our application.
Если какое -либо из вышеперечисленного было запутанным, обратитесь к следующим статьям:
BALCMS имеет файлы конфигурации в следующих местах:
config.php - Used detect and set our environment (i.e. development, staging or production).
application/
config/
application.yml - Used to specify the configuration for our environments.
core.yml - Used to specify the paths that our environments will use.
nav.yml - Used to specify navigation items used in our CMS.
routes.yml - Used to specify how requests are directed in our CMS.
default/ - Contains the files that the above config files inherit their config from. Never edit the files in this directory (as they will be overwritten when you do an upgrade).
data/
fixtures/
data.yml - Used to specify the default data that is loaded into our database
schema/
schema.yml - Used to specify our database structure (our models)
Файлы, которые вам будут интересоваться, в основном config.php и application.yml , иногда nav.yml . Если вы не планируете расширить BALCMS для добавления пользовательских функций, вам никогда не нужно прикасаться к другим файлам конфигурации.
Файлы документации либо включают в себя встроенную документацию (документы внутри них), либо они являются самоуверенными. Процесс смены редактора, который мы хотели бы использовать для нашего контента, был бы так:
application/config/default/application.yml , найдите соответствующее свойство - в данном случае его editor.code .application/config/application.yml - так, чтобы мы редактировали наш файл конфигурации, а не в один по умолчанию../cli clean-config чтобы убедиться, что изменение применяется-мы стараемся автоматически определять изменения, но педантичность иногда может пригодиться. Чтобы совершить ваши изменения, вы захотите запустить следующие команды:
cd mywebsite
git status
git add -u
git status
git add {the untracked files reported by the git status}
git commit -m "My Changes... {this is your message}" (note: this commits your changes)
git push origin --all (note: this sends your changes to the remote repository)
Объяснение: Что делает
git status, так это показывает нам изменения, которые мы внесли, мы используем это в первый раз, чтобы проверить, какие изменения вносятся (чтобы мы могли сказать, хотим ли мы внести эти изменения). На самом деле мы можем увидеть изменения в деталях, запустивgit diff. Затем мы добавляем файлы, которые мы хотим, к следующему коммитию, используяgit add. В приведенном выше примере мы используемgit add -uтак как это сэкономит нам много печати, он автоматически добавляет изменения во все отслеживаемые файлы (файлы, о которых уже знает репозиторий GIT). После запускаgit add -u.
Настройка живого сервера может быть выполнена любым из следующих двух способов.
Рекомендуемый вариант: ssh+git. Этот вариант является чисто потрясающей, он быстрый, прост, прост в использовании и позволяет нам редактировать файлы на удаленном сервере. Хотя немногие серверы поддерживают как SSH, так и GIT (ваш сервер нуждается в обоих), но преимущества огромны. Мы рекомендуем построить с Mediatemple, так как они тоже чистые, так что они поддерживают эту чистую удивительную функцию (их планы также очень дешевые для того, что они предлагают, поддержка фантастическая, а их система чрезвычайно гибкая и настраиваемая для всех ваших потребностей) - опять же, они чисто удивительны. Если ваш сервер не поддерживает SSH+GIT, то это нормально, так как мы можем использовать вариант резерва. Давайте рассмотрим, как мы это сделаем.
Вы захотите войти на свой сервер через SSH (см. Руководство вашего сервера для того, как это сделать).
После того, как вы закончите, вы захотите cd в свой каталог веб -сайтов (например, public_html ).
Этот каталог должен быть пустым, так как мы делаем чистую установку (если он не пуст, подкрепите его и опустошайте). Теперь, когда он пуст, мы хотим запустить следующие команды:
curl -OL http://github.com/balupton/balcms/raw/master/cli
git init
git remote add origin {your git repos read/write url}
./cli init-existing; ./cli configure; ./cli install
Объяснение: Эти команды должны выглядеть очень похожими на наши локальные команды установки, хотя есть некоторые различия. Мы начинаем с извлечения нашего CLI так же, как обычно, хотя теперь мы называем
git init, это говорит о нашей среде рассматривать текущий каталог как репозиторий GIT. Затем мы переходим к связи с удаленным репозиторием. Наконец мы запускаем команды./cli init-existing; ./cli configure; ./cli install. Это то же самое, что и раньше, но./cli init-newэтот раз мы./cli init-existing.
Вы все закончили, ваш сайт сейчас живет.
Опция запасного ответа: используйте стороннюю систему развертывания. Эта опция включает в себя регистрацию учетной записи с сторонней стороной, настройка вашего репозитория GIT, предоставление им данных вашего сервера и определение настроек развертывания. Это хорошо, но может стать дорогостоящим, когда вы развернете на несколько сайтов и не позволяете вам редактировать файлы на вашем живом сайте (вместо этого вы должны внести изменения на своем локальном сайте, а затем развернуть). Также может потребоваться справедливое время, чтобы развернуть изменения (с нескольких минут до нескольких часов). Если вы идете по этому пути, мы рекомендуем DeployHQ - их система работает очень хорошо, и у них есть доступные цены. Обратитесь к документации выбранной вами системы для использования этой опции.
Глупой вариант: вручную передавать файлы по FTP. Причина, по которой эта опция глупа, заключается в том, что он унаследовал проблемы, связанные с тем, что не использовать какое -либо контроль версий - вы быстро оказываете расхождения между вашим живым сервером и местной копией, вызывая несоответствия, отладки и кошмары обслуживания. Пожалуйста, не используйте эту опцию, если вы не мазохист. Мы не рассмотрим эту опцию.
ПРИМЕЧАНИЕ. Прежде чем развернуть на сайте Live, вам нужно будет добавить производственную среду в свой файл config.php и настроить базу данных для производственной среды в файле application/config/application.yml .
Как только мы довольны нашей местной копией, и мы хотим развернуть ее на сайте Live, нам просто нужно запустить уже знакомую команду ./cli deploy в нашем каталоге веб -сайтов.
Как только мы развернут наши изменения в нашем удаленном хранилище GIT, мы захотим втянуть эти изменения на наш живой сервер. Это зависит от выбора, который мы выбрали.
Использование параметров резервной системы (3 -я система): с помощью этой опции развертывание из нашего удаленного репозитория GIT на наш живой сервер может либо произойти автоматически, либо нам может потребоваться войти в их систему и вручную развернуть изменения и ждать очень долгое время.
Используя рекомендуемую опцию (SSH+GIT): мы захотим провести SSH в наш веб -сервер и CD в нашем каталоге живых сайтов (как мы это делали, когда мы настроем репозиторий GIT). Однажды захочет просто запустить ./cli update . Это принесет все недавние изменения и гарантирует, что наша конфигурация будет в курсе.
Чтобы обновить ваше приложение до последней версии BALCMS, вам просто нужно запустить ./cli upgrade в каталоге вашего приложения.
Объяснение: Что это сделает, так это принести последнюю версию BALCMS в филиал BALCMS и объединить ее в нашу филиал Dev.
Если у вас есть какие -либо конфликты, вы можете использовать git mergetool чтобы разобраться в их разборке.
Как только все конфликты будут разрешены, и обновление успешно прошло, вы захотите запустить ./cli configure для обновления любых подмодулей/зависимостей/требований, которые мы используем.
Во-первых, спасибо за то, что вы выбрали это программное обеспечение для вашего следующего коммерческого или даже проекта с открытым исходным кодом.
Если вы хотите вернуть какую -то ценность тем, кто стоит за этим программным обеспечением, так же, как они дали вам ценность, вы можете внести вклад в следующие способы:
Счастливого кодирования :-)