lowbase/yii2-lowbase
Composer 安装命令:
composer create-project lowbase/yii2-lowbase
包简介
Yii 2 CMS
关键字:
README 文档
README
lowBase - низкоуровневая CMS, включающая в себя готовую универсальную систему администрирования сайта и Yii2 основу для самостоятельной разработки клиентского приложения. По организации контента похожа на CMS ModX
Составлена на основе независимых модулей:
Каждый из модулей может быть заменен в CMS на собственный. Взаимодействия друг с другом минимальны.
Доступ к админ. панели по адресу /admin
Установка lowBase
composer create-project lowbase/yii2-cms project-name dev-master- Создаем пустую базу данных и настраиваем соединение с базой в файле config/db.php
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=имя_базы_данных',
'username' => 'пользватель',
'password' => 'пароль',
'charset' => 'utf8',
],
- Запускаем миграции коммандой
php yii migrate - Для работы EAUTH-авторизации необходимо зарегитсрировать приложение/сайт в соответствующих социальных сетях. В файле config/web.php прописываем полученные ключи и id приложения:
'authClientCollection' => [
'class' => 'yii\authclient\Collection',
'clients' => [
'vkontakte' => [
// https://vk.com/editapp?act=create
'class' => 'lowbase\user\components\oauth\VKontakte',
'clientId' => '?',
'clientSecret' => '?',
'scope' => 'email'
],
...
]
]
##Основы проектирования сайта на lowBase
Разработка сайта ведется по принципу "Программирование от содержимого". Т.е. создаем структуру на основе документов в панели администрирования, а затем переходим к Frontend части, делая самостоятельно вывод и пользовательский ввод, используя готовые модели. Либо производим эти действия параллельно: программист или верстальщик занимается пользовательским интерфейсом, а контент-менеджеры заполняют содержимое документов.
####Документ - универсальная сущность. Основа всего содержания
Документ - это:
- новость
- статья
- отзыв
- категория
- товар
- заказ магазина
- характеристка товара
- список со способами оплаты или доставки магазина
- сам способ оплаты или доставки
- тег для новости или статьи
- фотогалерея (основная страница вывода)
- альбом фотогалереи
- меню сайта
- пункт меню сайта
- ...
####Дополнительные поля
К каждому документу с помощью шаблона можно прикрепить дополнительные поля (различных типов). Допускаются мультизначения дополнительных полей с заданием минимального и максимального количества возможных значений. Например:
- Цена товара (число)
- Сумма заказа (число)
- Рейтинг отзыва (список или число)
- Вариант ответа опроса (список)
- Фотография альбома (файл с сервера)
- Теги (строка (мультиполе))
- ...
Как работать с CMS lowBase
В административной части формируется структура сайта на основе документов (меню, разделы, категории, статьи, различные списки) в древовидной иерархии.
Основные модели, с которыми придется взаимодействовать в клиентской части сайта: пользователи app/models/User и документыapp/models/Document через контроллеры
app/contollers/UserController и app/controllers/DocumentController, которые являются пустыми заготовками, унаследованные
от соответствующих классов модулей системы.
Как альтернативный вариант можно создать модульную структуру, унаследовав ваши модули от соответствующих
модулей \lowbase\document\Module и \lowbase\user\Module. Возможности модулей и вызов виджетов смотрите в документации модулей.
####Работа с документами и с дополнительными полями
Значения дополнительных полей документа хранятся в массиве $document->fields
После получения самого документа массив не заполняется:
$document = app\models\Document::findOne($id);
print_r($document->fields); //Array() - массив пуст
Для заполнения дополнительных полей документа используйте метод fillFields()
$document = app\models\Document::findOne($id);
$document->fillFields();
print_r($document->fields); //Array([1] => ['name' => 'Теги', 'type' => 4, 'param' => '', 'min' => 0, 'max' => 2, 'data' => [[1] => ['value' => 'Тег_1', 'position' => ''], [2] => ...]], [2] => ...)
/**
* Значения дополнительных полей
* Массив имеет следующую структуру:
*
* [$field_id] => [
* 'name' => 'Название дополнительного поля',
* 'type' => 'Тип дополнительного поля',
* 'param' => 'Параметр дополнительного поля',
* 'min' => 'Минимум значений',
* 'max' => 'Максимум значений',
* 'data' => [ $data_id => [
* 'value' => 'Значение дополнительного поля'
* 'position' => 'Позиция дополнительного поля'
* ],
* ...
* ]
* ],
* ...
*
* $field_id - ID дополнительного поля из БД, $data_id - ID записи значения дополнительного поля из БД
* Если необходимо прикрепить новое значение 'data' к документу, то в качестве ключа используем 'new_'.$i, где
* $i - идентификатор нового значения
*/
После сохранения документа
$document->save();
значения дополнительных полей будут сохранены в соответствующие таблицы.
Можно также получить значения дополнительных полей запросами к соответствующим таблицам (в зависимости от типа поля) БД напрямую
$data_values = \lowbase\document\models\ValueString::find()->where(['field_id' => $field_id, 'document_id' => $document_id])->all() // Получение значений дополнительного поля $field_id строкового типа
$data_values = \lowbase\document\models\ValueNumeric::find()->where(['field_id' => $field_id, 'document_id' => $document_id])->all() // Получение значений дополнительного поля $field_id числового типа
$data_values = \lowbase\document\models\ValueText::find()->where(['field_id' => $field_id, 'document_id' => $document_id])->all() // Получение значений дополнительного поля $field_id типа Текст
$data_values = \lowbase\document\models\ValueDate::find()->where(['field_id' => $field_id, 'document_id' => $document_id])->all() // Получение значений дополнительного поля $field_id типа Дата
lowbase/yii2-lowbase 适用场景与选型建议
lowbase/yii2-lowbase 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 185 次下载、GitHub Stars 达 44, 最近一次更新时间为 2015 年 11 月 27 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「framework」 「cms」 「yii2」 「lowbase」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 lowbase/yii2-lowbase 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 lowbase/yii2-lowbase 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 lowbase/yii2-lowbase 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
PHP Framework HLEB2 is the foundation of the web application. Provides ease of development and application performance.
A custom URL rule class for Yii 2 which allows to create translated URL rules
GraphQL authentication for your headless Craft CMS applications.
Set Links with a specific language parameter
Supercharged text field validation.
Integrate with Snipcart.
统计信息
- 总下载量: 185
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 44
- 点击次数: 4
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2015-11-27