簡體   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