繁体   English   中英

在(PHP SQL查询生成器)中找不到接口“ ...”

[英]Interface '…' not found in (PHP SQL Query Builder)

我正在尝试在正在处理的项目中使用P HP SQL查询生成器 我正在手动安装它。 通过将src目录复制到我的项目中,然后在类中使用以下代码来完成此操作:

$this->builder = new NilPortugues\\Sql\\QueryBuilder\\Builder\\GenericBuilder();

每当使用构建器时,我得到的错误是:

[18-Apr-2017 12:57:48 UTC] PHP Fatal error:  Interface 'NilPortugues\Sql\QueryBuilder\Builder\BuilderInterface' not found in /home/thomassm/public_html/php/lib/sqlbuilder/Builder/GenericBuilder.php on line 24

GenericBuilder.php

namespace NilPortugues\Sql\QueryBuilder\Builder;

use NilPortugues\Sql\QueryBuilder\Builder\Syntax\WriterFactory;
use NilPortugues\Sql\QueryBuilder\Manipulation\AbstractBaseQuery;
use NilPortugues\Sql\QueryBuilder\Manipulation\QueryInterface;
use NilPortugues\Sql\QueryBuilder\Manipulation\QueryFactory;
use NilPortugues\Sql\QueryBuilder\Manipulation\Select;
use NilPortugues\Sql\QueryBuilder\Syntax\Column;
use NilPortugues\Sql\QueryBuilder\Syntax\Table;

/**
 * Class Generic.
 */
class GenericBuilder implements BuilderInterface
{//...}

BuilderInterface.php

namespace NilPortugues\Sql\QueryBuilder\Builder;

use NilPortugues\Sql\QueryBuilder\Manipulation\QueryInterface;

/**
 * Interface BuilderInterface.
 */
interface BuilderInterface
{
    /**
     * @param QueryInterface $query
     *
     * @return string
     */
    public function write(QueryInterface $query);

    /**
     * @param QueryInterface $query
     *
     * @return string
     */
    public function writeFormatted(QueryInterface $query);
}

我认为错误是由文件调用方式引起的,有什么建议吗?

我正在手动安装它。 通过将src目录复制到我的项目中,然后在我的类中使用以下代码来完成此操作:...

使用之前,应通过include / requrie包含每个源文件。 但是PHP允许为类,接口和特征设置自动加载 简而言之,当运行时遇到未定义的类时,将调用特殊的回调,该回调可以加载相关文件。

尽管形式上自动加载规则可以是任意的,但是大多数现代项目都支持通用的社区标准: PSR-4 Autoloader 因此,您需要此标准的实现。

如库描述中所述,建议的安装方式是通过Composer

php composer.phar require nilportugues/sql-query-builder

Composer提供了自己的PSR-4实现,并生成文件vendor/autoload.php 通常,此文件包含在应用程序入口点。 它允许使用所有必需库中的类。

可以在不使用Composer的情况下使用软件包( 相关答案 )。 但这需要大量工作(您仍然需要PSR-4自动装带器),这种方式如今很少使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM