PHPの特性と名前空間を使用してプロジェクトのコードとファイルを整理しようとしています。致命的なエラー:自己定義されたパスに名前空間のクラスが見つかりません
しかし、私は私のファイルが同じディレクトリにあります。この
Fatal error: Class 'ModernPHP\News' not found in E:\www\modernphp\test.php on line 11.
を取得する理由を私は知りません。私はちょうどディレクトリmodernphpを持っています。 3つのファイルはこのディレクトリを超えています。
私は名前空間を誤って使用していますか?それとも別のことですか?
mysql.trait.php
<?php
namespace ModernPHP;
trait db_connect
{
protected $host;
protected $user;
protected $pwd;
protected $db;
protected $connect;
public function __construct($host, $user, $pwd, $db)
{
$this->host = $host;
$this->user = $user;
$this->pwd = $pwd;
$this->db = $db;
}
public function connect()
{
$this->connect = mysqli_connect($this->host, $this->user, $this->pwd);
mysqli_select_db($this->connect, $this->db);
}
public function query($table, $arr_fields = array(), $order_by = false)
{
$sql = 'SElECT * FROM {$table}';
return mysqli_query($this->connect, $sql);
}
}
News.php
<?php
namespace ModernPHP\News;
class News
{
use mysql;
/*
public function __construct()
{
//$db = new m
}
*/
public function latestNews()
{
}
}
test.phpを
<?php
namespace ModernPHP;
use ModernPHP\News;
class test {
public function __construct()
{
$news_object = new News('localhost', 'root', '', 'invo');
print_r($news_object);
}
}
$test = new Test;
--- Jan.06.2016に追加---
class ComposerAutoloaderInita3585bdd4dd862cdaf5a9a8f6faaa488
{
private static $loader;
public static function loadClassLoader($class)
{
if ('Composer\Autoload\ClassLoader' === $class) {
require __DIR__ . '/ClassLoader.php';
}
}
public static function getLoader()
{
if (null !== self::$loader) {
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInita3585bdd4dd862cdaf5a9a8f6faaa488', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
ここでファイルを 'インクルードしましたか? – Thamilan
名前空間にファイルを含める必要はありません。 – user39291
@ user39291これは間違っています。それでもファイルを自動ロードするか、明示的にインクルードする必要があります。 –