dicr / php-oclib
Библиотека для подключения классов Yii к OpenCart
Requires
- php: ~7.4 || ~8.0.1
- ext-imagick: *
- ext-json: *
- ext-mbstring: *
- ext-mysqli: *
- ext-pdo: *
- dicr/yii2-helper: ~4.5
- dicr/yii2-site: ~7.0
- dicr/yii2-validate: ~2.3
- yiisoft/yii2: ~2.0
Requires (Dev)
- roave/security-advisories: dev-latest
- dev-master
- 6.4.3
- 6.4.2
- 6.4.1
- 6.4
- 6.3.0
- 6.2.3
- 6.2.2
- 6.2.1
- 6.2
- 6.1.2
- 6.1.1
- 6.1.0
- 6.0.1
- 6.0.0
- 5.3.2
- 5.3.1
- 5.3.0
- 5.2.13.5
- 5.2.13.4
- 5.2.13.3
- 5.2.13.2
- 5.2.13.1
- 5.2.13
- 5.2.12.2
- 5.2.12.1
- 5.2.12
- 5.2.11.1
- 5.2.11
- 5.2.10
- 5.2.9.1
- 5.2.9
- 5.2.8
- 5.2.7
- 5.2.6
- 5.2.5
- 5.2.4
- 5.2.3
- 5.2.2
- 5.2.1
- 5.2.0
- 5.1.6
- 5.1.5
- 5.1.4
- 5.1.3
- 5.1.2
- 5.1.1
- 5.1.0
- 5.0.5
- 5.0.4
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.2.1
- 4.2.0
- 4.1.6
- 4.1.5
- 4.1.4
- 4.1.3
- 4.1.2
- 4.1.1
- 4.1.0
- 4.0.15
- 4.0.14
- 4.0.13
- 4.0.12
- 4.0.11
- 4.0.10
- 4.0.9
- 4.0.8
- 4.0.7
- 4.0.6
- 4.0.5
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.17
- 3.1.16
- 3.1.15
- 3.1.14
- 3.1.13
- 3.1.12
- 3.1.11
- 3.1.10
- 3.1.9
- 3.1.8
- 3.1.7
- 3.1.6
- 3.1.5
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.0
- 2.2.1
- 2.2.0
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.0
- 1.8.2
- 1.8.1
- 1.8.0
- 1.7.3
- 1.7.2
- 1.7.1
- 1.7.0
- 1.6.0
- 1.5.5
- 1.5.0
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.0
- 1.2.1
- 1.2.0
- 1.1.0
- 1.0.14
- 1.0.13
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
This package is auto-updated.
Last update: 2024-10-25 13:26:30 UTC
README
Адаптер Yii2 позволяет подключить и использовать в OpenCart компоненты Yii методом реализации функций через библиотеку Yii (кроме контроллеров).
Подключение библиотек Yii2
Автозагрузка классов как сторонних библиотек, так и папки system
выполняется через composer.
composer.json
"require": {
"php": ">=7.2",
"dicr/php-oclib": "~3.1.5",
},
"autoload": {
"classmap": ["system/engine/", "system/library/"],
"files": ["system/helper/general.php", "system/helper/json.php", "system/helper/utf8.php"]
},
Конфиги
/config/local.php
- опции локальной установки (протокол, домен, пароли, базы)/config/common.php
- общий для Yii и OpenCart содержит основные пути
/config/opencart.php
- общий конфиг OpenCart для приложений /admin и /catalog/config.php
- конфиг OpenCart для приложения /catalog/admin/config.php
- OpenCart конфиг для приложения /admin
/config/yii.php
- общий конфиг Yii/config/yii.web.php
- конфиг Yii для Web/config/yii.console.php
- конфиг для Yii для Console
Инициализация
Yii Application создаётся и используется как контейнер компонентов и сервисов без run
, а Web-контроллеры оставлены OpenCart.
/system/startup.php
// удаляем авто-загрузчик OpenCart // spl_autoload_register('library'); // spl_autoload_register('vendor'); // spl_autoload_extensions('.php');
// Подключаем авто-загрузчик Composer
require(__DIR__ . '/../vendor/autoload.php');
// константы YII_ENV и YII_DEBUG должны быть установлены до загрузки Yii
defined('YII_ENV') or define('YII_ENV', 'dev');
defined('YII_DEBUG') or define('YII_DEBUG', DEBUG);
// подключаем класс Yii
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
// создаем приложение Yii
new yii\web\Application(require(__DIR__ . '/../config/yii.web.php'));
Маршрутизация
/.htaccess
и /admin/.htaccess
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css|pdf)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
ЧПУ
Для работы ЧПУ добавляем стандартный preAction-контроллер ЧПУ в OpenCart, в /index.php
,
и также в /admin/index.php
// Инициализация SEO ЧПУ и маршрутизации Yii
$controller->addPreAction(new Action('startup/url'));
При этом будут работать также короткие маршруты:
- вместо
/index.php?route=catalog/product&product_id=123
- можно
/catalog/product?product_id=123
В контроллере /catalog/controllers/startup/url.php
используем наследование от контроллера oclib:
class ControllerStartupUrl extends ControllerCatalogStartupUrl {}
Прокси-классы
Требуется заменить классы OpenCart на пустышки из каталога opencart
, наследующие одноименные классы dicr\oclib
.