0

我有以下库结构

C:\WWW\WEBS
|   users.php
|
\---lib
    |   Api.php
    |   Server.php
    |   TimeSync.php
    |
    \---TimeSync
            Ntp.php
            Protocol.php
            Sntp.php

在 server.php 我有

<?php
namespace lib; 
class Server extends Api
{
}
?>

在 users.php 中,我将其用作

<?php
  use lib\Server;
  $objServer = new Server();
?>

我也试过用likeuse lib\Server;

但在这两种情况下,它都在说

致命错误:找不到类“lib\Server”

C:\www\Experimentation\webserviceserver\users.php 在第 7 行

我哪里出错了。我应该使用自动装载机吗?

4

1 回答 1

0

您将需要使用自动装载机。您可以使用 Composer 中提供的那个。一旦你安装了它(在你的项目的根目录),你放置一个 composer.json 文件,并在里面复制以下代码:

 {
    "autoload":{
        "psr-4":{
            "Lib\\" : "lib/"
        }
    }
 }

然后你使用命令composer dumpautoload。这会将自动加载文件复制到项目根目录下名为“vendor”的文件夹中。

然后在 users.php 中你需要自动加载器:

require_once "vendor/autoload.php"

你使用命名空间:

use Lib;
$objServer = new Lib\Server();

它可能会起作用。

于 2015-04-07T20:38:08.010 回答