[英]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.