実現したいこと
- PHP の Slim にて、独自クラスを利用できるようにしたい
前提
PHP の Slim を利用して、ブラウザに文字列を表示しようとしています。
独自クラスの利用を試みたときに、以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
thrown in /Users/sutonea/dev/php/hello_slim/public/index.php on line 18 [Sun Jun 25 12:51:34 2023] [::1]:51033 [200]: GET /sample - Uncaught Error: Class "MySpace\SampleClass" not found in /Users/sutonea/dev/php/hello_slim/public/index.php:18
該当のソースコード
public/index.php
php
1<?php 2use Psr\Http\Message\ResponseInterface as Response; 3use Psr\Http\Message\ServerRequestInterface as Request; 4use Slim\Factory\AppFactory; 5use MySpace\SampleClass as SampleClass; 6 7require __DIR__ . '/../vendor/autoload.php'; 8 9$app = AppFactory::create(); 10 11$app->get('/', function (Request $request, Response $response, $args) { 12 $response->getBody()->write("Hello world!"); 13 return $response; // こちらは正常に動作しています 14}); 15 16 17$app->get('/sample', function (Request $request, Response $response, $args) { 18 $klass = new SampleClass(); // ここで独自クラスを利用したいですが、エラーとなります 19 $response->getBody()->write($klass->execute()); 20 return $response; 21}); 22 23$app->run();
composer.json
json
1{ 2 "require": { 3 "slim/slim": "4.*", 4 "slim/psr7": "^1.6" 5 }, 6 "autoload": { 7 "psr-4": { 8 "MySpace\\": "src/" 9 } 10 } 11} 12
src/MySpace/SampleClass.php
php
1namespace MySpace; 2 3class SampleClass { 4 public function execute() { 5 return "Sample"; 6 } 7}
試したこと
composer dumpautoload
の実行- サーバー再起動
補足情報(FW/ツールのバージョンなど)
OS : Mac OS 12.6.5
PHP 8.2.7
Slim: 4.11.0

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/06/25 04:09