1

即使我认为我指定了 . 的权利AUTOLOAD_PATHSrector.php我仍然收到相同的错误:Class Bake\View\Helper not found.

我正在尝试将 CakePHP 3.10.1 插件转换为 CakePHP 4.0。

$ bin/cake upgrade rector --rules cakephp40 ../my_app/plugins/WetKit/src

 [ERROR] Could not process "View/Helper/BakeHelper.php" file, due to:
         "Analyze error: "Class Bake\View\Helper not found.". Include your files in
         "$parameters->set(Option::AUTOLOAD_PATHS, [...]);" in "rector.php" config.
         See https://github.com/rectorphp/rector#configuration".

rector.php

<?php
declare(strict_types=1);

use Rector\Core\Configuration\Option;
use Rector\Php74\Rector\Property\TypedPropertyRector;
use Rector\Set\ValueObject\SetList;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;

return static function (ContainerConfigurator $containerConfigurator): void {
    // get parameters
    $parameters = $containerConfigurator->parameters();
    $parameters->set(Option::PATHS, [
        __DIR__ . '/src'
    ]);

    $parameters->set(Option::AUTOLOAD_PATHS, [
        '/c/Users/me/Downloads/xampp/htdocs/my_app/vendor/cakephp/bake/src/View/Helper/BakeHelper.php'
    ]);

    // Define what rule sets will be applied
    $containerConfigurator->import(SetList::DEAD_CODE);

    // get services (needed for register a single rule)
    // $services = $containerConfigurator->services();

    // register a single rule
    // $services->set(TypedPropertyRector::class);
};

my_app/plugins/WetKit/src/View/Helper/BakeHelper.php

<?php
namespace WetKit\View\Helper;

use Bake\Utility\Model\AssociationFilter;
use Cake\Core\Configure;
use Cake\Core\ConventionsTrait;
use Cake\Utility\Inflector;
use Cake\View\Helper;
use Cake\Datasource\ConnectionManager;

use Bake\View\Helper as WetKitHelper;

/**
 * Bake helper
 */
class BakeHelper extends WetKitHelper
{
    //code here
}
4

0 回答 0