В настоящее время я оцениваю свои варианты изменения поставщика пользователей Bolt и связанных представлений для использования некоторых пользовательских служб входа в систему. Пока что, похоже, мне придется изменить некоторые основные элементы исходного кода Bolt, что, очевидно, является плохим выбором:
Users
сервис с пользовательским классом (тот же интерфейс)Backend
Класс как он маршрутизации и рендеринга связанных представлений самЛюбые идеи о том, как пойти на это с минимальным воздействием на основной исходный код?
Во многом это зависит от того, сколько вы хотите изменить, но, как вы упоминаете, обмен сервисами в Silex очень прост, все, что вам нужно сделать, это:
<?php
namespace Custom;
use Bolt\Users;
// src/Custom/UserService
class UserService extends Users {}
а затем в вашей начальной загрузке сделать что-то вроде следующего.
<?php
// public/index.php
require_once "../vendor/autoload.php";
$configuration = new Bolt\Configuration\Composer(dirname(__DIR__));
$app = new Bolt\Application(array('resources'=>$configuration));
$app['users'] = new Custom\UserService($app);
$app->initialize();
$app->run();
Теперь ваш пользовательский пользовательский сервис может решить, какой из основных методов Bolt переопределить.
Других решений пока нет …