0
我正在一個項目上工作,但我有一個非常惱人的問題。我使用一個PHP文件rb.php,其中包含項目的幾個重要類(RedBean ORM的文件rb.php,都在一箇中)。 問題是我可以在特定位置使用該文件正確使用該文件,但不能在其他位置使用該文件。PHP無法重新聲明類 - 需要錯誤 - Silex框架
這是我的樹形圖:
當我去到index.php,一切順利的話,我可以做require('rb.php');
<?php
require_once 'vendor/autoload.php';
require('rb.php');
R::setup('mysql:host=localhost;
dbname=silex','root','');
require('Model_Bandmember.php');
use Silex\Application;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
$srcDir = __DIR__;
$app = new Application();
$app['debug'] = true;
$app->register(new DDesrosiers\SilexAnnotations\AnnotationServiceProvider(), array(
"annot.controllerDir" => $srcDir."\controllers"
));
$app->register(new Silex\Provider\TwigServiceProvider(), array(
'twig.path' => $srcDir.'\views',
));
$bandmember = R::dispense('bandmember');
$bandmember->name = 'Fatz Waller';
$id = R::store($bandmember);
$bandmember = R::load('bandmember',$id);
R::trash($bandmember);
echo $lifeCycle;die();
$app->run();
我有$生命週期的良好的價值。不過,我想爲函數添加(使用此文件中的一個控制器),更新()等。所以我試試這個:
<?php
namespace App\Controllers;
use DDesrosiers\SilexAnnotations\Annotations as SLX;
use Silex\Application;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
require(__DIR__.'/../rb.php');
/**
* @SLX\Controller(prefix="article")
*/
class ArticleController
{
/**
* @SLX\Route(
* @SLX\Request(method="GET", uri="/"),
* @SLX\Bind(routeName="articleIndex")
*)
*/
public function index(Application $app)
{
$articles = R::findAll('article');
return $app['twig']->render('Article/index.twig', array(
'articles' => $articles,
));
}
...
...
但我有此錯誤:
Cannot redeclare class RedBeanPHP\RedException in C:\wamp64\www\SilexTest\rb.php on line 6737
很好,我認爲該文件必須已經存在!但是,如果我評論它,我有這樣的錯誤:
Class 'App\Controllers\R' not found
這是正常的,因爲這個類是在我剛剛談到的rb.php文件。
如果我做了一個要求,我有一個類的redeclare,但如果我沒有說,它缺乏一個類。 任何幫助將不勝感激。
非常感謝!我愚蠢的忘記了'使用'哈哈:)謝謝 –
最受歡迎:-) –