alfredbez/oxid-dump-autoload

此包的最新版本(0.5.0)没有可用的许可信息。

0.5.0 2020-07-07 12:29 UTC

This package is auto-updated.

Last update: 2024-09-07 18:04:34 UTC


README

codecov

描述

有时将保存在oxid数据库中的模块链以简单的php文件形式存储在磁盘上很有用,例如运行静态代码分析或告诉IDE如何找到*_parent类。这个小工具允许您生成一个php文件,该文件包含商店内部使用的所有class_alias语句。

例如,可以在phpstan中这样使用

$ cat phpstan.neon
parameters:
    level: 0
    autoload_files:
    scanFiles:
    - %currentWorkingDirectory%/source/oxfunctions.php
    - %currentWorkingDirectory%/source/overridablefunctions.php
    bootstrapFiles:
    - %currentWorkingDirectory%/vendor/oxid-esales/oxideshop-ce/source/Core/Model/BaseModel.php
    - %currentWorkingDirectory%/.autoload.oxid.php

请确保使用bootstrapFiles,因为该文件包含一个class_alias()语句列表。

psalm的使用示例

$ cat .autoload.php
<?php

require_once 'vendor/autoload.php';
require_once '.autoload.oxid.php';
$ cat psalm.xml
<?xml version="1.0"?>
<psalm
    errorLevel="6"
    resolveFromConfigFile="true"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="https://getpsalm.org/schema/config"
    xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
    autoloader=".autoload.php"
>
    <projectFiles>
        <directory name="." />
        <ignoreFiles>
            <directory name="vendor" />
            <file name="metadata.php" />
        </ignoreFiles>
    </projectFiles>
</psalm>

安装

composer require --dev alfredbez/oxid-dump-autoload

用法

vendor/bin/oxid-dump-autoload --help 显示了通用用法信息。

要在当前工作目录中生成autoload.oxid.php,请将-p autoload.oxid.php添加到命令中。

选项

源代码

脚本使用商店的类链作为默认值,但您也可以通过指定metadata.php的路径来生成模块的autoload文件。

vendor/bin/oxid-dump-autoload --source path/to/my/module/metadata.php

过滤器

您可以通过以下方式从链中过滤类

vendor/bin/oxid-dump-autoload --filter oe/,ddoe/

指定商店ID

vendor/bin/oxid-dump-autoload --shopid 5

写入文件而不是STDOUT

vendor/bin/oxid-dump-autoload -p .autoload.oxid.php
vendor/bin/oxid-dump-autoload > .autoload.oxid.php # basically the same

提供bootstrap.php的路径

如果脚本无法找到商店的bootstrap.php,您可以通过环境变量BOOTSTRAP_PATH提供路径。

BOOTSTRAP_PATH=$(pwd)/source/bootstrap.php vendor/bin/oxid-dump-autoload