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