LoginSignup
sergiroberto0921
@sergiroberto0921 (創 藤田)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Composerが動きません 誰か助けて

Discussion

解決したいこと

composerが正常に動きません!
index.phpをlocalでうごかそうとしているんですがエラーがでて動かないです。
エラーを見る限り該当するphpファイルにクラスがないよとのことなんですが、そのphpファイルにそのクラスが定義されたファイルがインポートされてるようなので、どうすればよいかわかりません。

発生している問題・エラー

Fatal error: Uncaught Error: Class 'src\Controllers\TestController' not found in C:\MAMP\htdocs\composertest\index.php:7 Stack trace: #0 {main} thrown in C:\MAMP\htdocs\composertest\index.php on line 7

該当するソースコード

<?php
require_once __DIR__ . '/vendor/autoload.php';

use src\Controllers\TestController;


$src = new TestController;
$src->run();

?>

関連するコード

TestController.php

<?php

namespace src\Controllers;


use src\Models\TestModel;


class TestController{
    public function run(){
        $model = new TestModel;
        echo $model->getHello();
    }
}

?>


TestModel.php

<?php

namespace src\Models;

class TestModel {
    private $text = 'hello world';


    public function getHello(){
        return $this->text;
    }
}

?>


### 自分で試したこと
udemyの授業でやっていたことなのでコードを再確認した、
なるべく早く解決したいのでどこかおかしい記述のぶぶんがあったりしたら優しく教えてほしいです!
0

Class 'src\Controllers\TestController' not found

ファイルが正しく読み込まれていないか、usenamespaceに誤りがあったりするとこのようなエラーが出ます。

PHPの基本ですが、ファイル読み込みはincluderequireで一つずつ読み込んでいきます。
これを簡単にしてくれるのがComposerのAutoloadingです。

ただし、/vendor/autoload.phpを読み込んだだけで機能するわけではありません。
ドキュメントを読みつつ、これらの点を確認してください。

  • composer.jsonautoload設定
  • dump-autoloadコマンド
  • ファイル、ディレクトリ構造
  • ファイル名と名前空間(usenamespace
2Like

回答ありがとうございます。コマンドプロンプトの方でdump-autoloadをやってみると表示するようになりました。@blue32aさんが言ってるようなcomposerの役割は
全然わかってなかったので、とても勉強になります

0Like

Your answer might help someone💌