-2

簡単な質問です。私は教育のためにmvc(私のミニフレームワーク;))を持っています。

https://github.com/aras123/MiniFramework

ルートベースにファイルtest.phpを作成した場合(たとえば)。

test.php

<?php 
class Example {
    public function __construct() {
    echo 'This is example!';
    }
}

そして、私のフレームワークで IndexController のアクションを作成し、クラスを含めて実行したい

アプリケーション/コントローラー/IndexController.php

<?php
namespace Application\Controller;
use Framework\Controller;

class IndexController extends Controller {
    public function _init() {
    }

    public function IndexAction() {
        require 'test.php'; //path is ok
                $aaa = new Example(); //is error 
    }

エラーメッセージ:

Fatal error: Class 'Application\Controller\Example' not found in
/Application/Controller/IndexController.php on line ...
4

2 に答える 2

1

オートローダーの動作方法は、作成したファイルを取得していません。ここには2つの解決策があります。コントローラーの上部にインクルードがあります

<?php
namespace Application\Controller;
require __DIR__ . '/../../test.php';
// ...

または、に移動test.phpApplication\Controllerて名前を変更しますExample.php

私は後者を提案します

于 2013-09-05T18:29:55.903 に答える
0

はい!これは良いコードです:

<?php
namespace Application\Controller;
use Framework\Controller;

class IndexController extends Controller {
    public function _init() {
    }

    public function IndexAction() {
        require 'test.php'; //path is ok
                $aaa = new \Example(); //now is ok!
    }
于 2013-09-05T21:53:02.827 に答える