PSR4 — использование автозагрузки в composer вместо require

Я новичок в SLIM3 и последовал учебник установить его при использовании Composer. В уроке я попытался использовать autoload загрузить все мои классы без использования requireвот моя файловая структура:

dev
|── composer.json
|── index.php
|──── classes
|──── vendor

вот мой composer.json файл:

{
"require": {
"slim/slim": "^3.0",
"monolog/monolog": "^1.23"},
"autoload": {
"psr-4": {
"": "classes/"}
}
}

и вот pdf.class.php который сидит под classes

dev
|── composer.json
|── index.php
|──── classes
|─ pdf.class.php
|──── vendor

class pdfClass {
public function testme(){
return 'i am working';
$this->logger->addInfo("Something interesting happened");
}
}

и index.php:

<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

// Require for loading the vendor libraries installed by composer
require 'vendor/autoload.php';
// require 'classes/pdf.class.php'; // << If I uncomment this line it works.$config['displayErrorDetails'] = true;
$config['addContentLengthHeader'] = false;

$app = new \Slim\App(["settings" => $config]);
$container = $app->getContainer();

$app->post('/{controller}/{function}', function (Request $request, Response $response) {
$headers = $request->getHeaders();
$params = $request->getParsedBody();

$classname = $request->getAttribute('controller').'Class';

$controller = new $classname;
$function = $request->getAttribute('function');

$result = $controller->$function();

$response->getBody()->write($result);
return $response;
});

$app->run();

Не должен autoload участие в composer.json Позвольте мне использовать класс без необходимости его?

0

Решение

Не уверен, в чем именно заключается ваша проблема, но psr-4 требует, чтобы имя файла было точно таким же, как и имя класса, так что в вашем случае, вероятно, Pdf.php не pdf.class.php:

Имя завершающего класса соответствует имени файла, оканчивающемуся на .php.
Имя файла ДОЛЖНО совпадать с регистром имени завершающего класса.

http://www.php-fig.org/psr/psr-4/

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector