phpのライブラリで認証を実装することができるものでSentinelというものを試しに実装してみようと思い、参考サイトを見ながら導入を進めてみました。
- 今回はフレームワークを利用せずにNativePHPで実装をしようと試しております。またMAMP環境での実装となります。
- PHP Ver:7.3.8
- MYSQL Ver:5.7.26
参考サイトにあるphp ./src/tuto.php
直前まで実行できたのですが、本コードを実行すると以下のようなエラーが出力されてしまいます。
PHP
1//ini_set('display_errors', 1)の結果 2Fatal error: Uncaught Error: Call to undefined method Illuminate\Events\Dispatcher::fire() in /Applications/MAMP/htdocs/textile/vendor/cartalyst/support/src/Traits/EventTrait.php:127 Stack trace: #0 /Applications/MAMP/htdocs/textile/vendor/cartalyst/sentinel/src/Sentinel.php(169): Cartalyst\Sentinel\Sentinel->fireEvent('sentinel.regist...', Array) #1 /Applications/MAMP/htdocs/textile/vendor/cartalyst/sentinel/src/Native/Facades/Sentinel.php(97): Cartalyst\Sentinel\Sentinel->register(Array) #2 /Applications/MAMP/htdocs/textile/src/tuto.php(29): Cartalyst\Sentinel\Native\Facades\Sentinel::__callStatic('register', Array) #3 {main} thrown in /Applications/MAMP/htdocs/textile/vendor/cartalyst/support/src/Traits/EventTrait.php on line 127
これを読み解くと依存しているIlluminate
の方でDispatcherクラスのfireクラスで構文エラーが発生しているように読めるのですが、参考サイトにあるように適切にcomposer.jsonを以下の通りupdateしており、指定されたilluminate
ディレクトリはvendor直下に存在しており、特に設定にも問題はないように思われます。
Json
1{ 2 "require": { 3 "cartalyst/sentinel": "^2.0", 4 "cartalyst/support": "~1.0", 5 "illuminate/database": "~5.0", 6 "illuminate/events": "^5.2", 7 "illuminate/http": "~5.0", 8 "illuminate/support": "~5.0", 9 "php": ">=5.4.0", 10 "paragonie/random_compat": "~1.1" 11 } 12}
また、SOURCE ./vendor/cartalyst/sentinel/schema/mysql-5.6+.sql;
も適切に読み込まれており、PHPMYADMINでテーブルが作成されていることも確認しております。
記事が5年前で少し古いところはあるのですが、Native PHPで導入する例などを見つけることができずここで行き詰ってしまいました。どなたか知見のある方がいればアドバイスをお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/17 01:11
2021/06/17 01:28
2021/06/18 01:28