使用命名空间自动加载时找不到类(无Composer)

时间:2016-12-28 12:21:46

标签: php class autoload php-7

我一直在检查答案但没有成功。我没有使用作曲家自动加载功能。

我试图在index.php中测试一些类,集合和特征。 问题是,当我包含命名空间时,我已经创建了_autoload函数(无作曲家)来在需要时加载一个类。如果我执行php index.php我没有找到类错误。

我尝试过使用命令,但也没有成功。

当我像这样一个一个地包括每个类时,它解决了:

include_once __DIR__ . '/Collection.php';
include_once __DIR__ . '/User.php';
include_once __DIR__ . '/Tweet.php';
include_once __DIR__ . '/UserCollection.php';
include_once __DIR__ . '/TweetCollection.php';

这就是我的index.php:

<?php

namespace phpexercises\entregableT3;

error_reporting(E_ALL);
ini_set( "display_errors", "on" );
/*
include_once __DIR__ . '/Collection.php';
include_once __DIR__ . '/User.php';
include_once __DIR__ . '/Tweet.php';
include_once __DIR__ . '/UserCollection.php';
include_once __DIR__ . '/TweetCollection.php';
*/
use phpexercises\entregableT3\User;

function __autoload($classname){
   require __DIR__ . "/" . $classname . ".php";

}

//UserCollection pruebas

$alex = new User();
$jumbo = new User();

$users = new UserCollection();
$alex->phone = "682383";
$alex->email = "alex@example.com";
$alex->city = "BCN";
$alex->gender = "Male";


$jumbo->phone = "54534535";
$jumbo->email = "jumbo@example.com";
$jumbo->city = "elche";
$jumbo->gender = "Male";

$users->add($alex);
$users->add($jumbo);



print_r($users->findByEmail("alex@example.com"));
print_r($users->findByGender("Female"));

//Tweet Collection pruebas

$tweet = new Tweet();
$tweet->email  = "alex@example.com";
$tweet->text = "This is a tweet";
$tweet->date = date("D:M:Y");

$tweet1 = new Tweet();
$tweet1->email  = "alex@example.com";
$tweet1->text = "This is a tweet";
$tweet1->date = date("D:M:Y");

当我取消注释需求时,一切正常,但它不是加载所有类的方法......对这种行为有什么想法吗?我该如何同时加载这些类? 感谢

0 个答案:

没有答案