Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在laravel中将include_once()与命名空间一起使用_Php_Laravel_Namespaces_Laravel 5 - Fatal编程技术网

Php 如何在laravel中将include_once()与命名空间一起使用

Php 如何在laravel中将include_once()与命名空间一起使用,php,laravel,namespaces,laravel-5,Php,Laravel,Namespaces,Laravel 5,我是laravel的新手,正在导入一个现有的php站点。 我创建了一个名为“List”的控制器,然后我需要创建一个类的对象,在一个文件中编码,该文件由include_once()包含,如图所示 <?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; $INCLUDE_ROOT = 'path/to/file'; include_once($INCLUDE_ROOT . "ServiceDeta

我是laravel的新手,正在导入一个现有的php站点。 我创建了一个名为“List”的控制器,然后我需要创建一个类的对象,在一个文件中编码,该文件由include_once()包含,如图所示

<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;


$INCLUDE_ROOT = 'path/to/file';
include_once($INCLUDE_ROOT . "ServiceDetails.class.php");

class Lists extends Controller
{
    public function show()
    {
        $objServiceDetails= new ServiceDetails;
        .........
        ........
     }
 }

如果当前文件中有名称空间,PHP将尝试在当前名称空间中查找类,如果找不到,您将得到致命错误。您应该打开
ServiceDetails.class.php
class来验证是否存在
namespace
在文件的开头(在
之后),您只需要为该类添加一个
use
语句,以便当前文件中的类可以“看到”它


是的,但是您在一个名称空间中(假设它是一个文件夹),所以ServiceDetails位于“当前文件夹”(App\Http\Controllers)中。请尝试使用
new\ServiceDetails
,或该类的完整命名空间(如果有)one@DamienPirsy,Thanx buddy,当我使用
new\ServiceDetails
时,它可以工作,但这是一个巨大的项目,因此在控制器中包含大量文件,并且创建了很多时间对象,是否有任何其他方法来结束命名空间的范围,以便我们可以ate对象是否正常?Thanx我认为它是标准的,但实际上它是一个巨大的应用程序,因此有很多文件被包含,许多对象被创建,所以很难将每个include()更改为名称空间。
use App\Http\Controllers\Controller;
use ServiceDetails
use namespaceyoucopied\ServiceDetails;
use A\B\C\ServiceDetails;
<?php
namespace App\Http\Controllers;

$INCLUDE_ROOT = 'path/to/file';
include_once($INCLUDE_ROOT . "ServiceDetails.class.php");

use App\Http\Controllers\Controller;
use Namespace\To\ServiceDetails;

class Lists extends Controller
{
    public function show()
    {
        $objServiceDetails= new ServiceDetails;
        .........
        ........
     }
 }
<?php namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Lib\ServiceDetails;

class Lists extends Controller
{
    public function show()
    {
        $objServiceDetails= new ServiceDetails;
        .........
        ........
     }
 }