質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

composer

Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

Q&A

0回答

2122閲覧

cakephp4 ログイン認証機能

meruchaaan

総合スコア18

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

composer

Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

0グッド

0クリップ

投稿2021/01/13 06:26

編集2021/01/13 06:44

現在ネットの情報からcakephp4でログイン認証機能を作ろうと試みております。そこで
src/application.phpにて

php

1use Cake\Core\Configure; 2use Cake\Core\ContainerInterface; 3use Cake\Core\Exception\MissingPluginException; 4use Cake\Datasource\FactoryLocator; 5use Cake\Error\Middleware\ErrorHandlerMiddleware; 6use Cake\Http\BaseApplication; 7use Cake\Http\Middleware\BodyParserMiddleware; 8use Cake\Http\Middleware\CsrfProtectionMiddleware; 9use Cake\Http\MiddlewareQueue; 10use Cake\ORM\Locator\TableLocator; 11use Cake\Routing\Middleware\AssetMiddleware; 12use Cake\Routing\Middleware\RoutingMiddleware; 13use Authentication\AuthenticationService; 14use Authentication\AuthenticationServiceInterface; 15use Authentication\AuthenticationServiceProviderInterface; 16use Authentication\Middleware\AuthenticationMiddleware; 17use Cake\Routing\Router; 18use Psr\Http\Message\ServerRequestInterface; 19/** 20 * Application setup class. 21 * 22 * This defines the bootstrapping logic and middleware layers you 23 * want to use in your application. 24 */ 25class Application extends BaseApplication implements AuthenticationServiceProviderInterface 26{ 27 //ネットに書いてある処理 28}

このように記載したところ

Fatal error: Uncaught Error: Interface 'Authentication\AuthenticationServiceProviderInterface' not found in /var/www/html/sample/src/Application.php:43 Stack trace: #0 /var/www/html/sample/vendor/composer/ClassLoader.php(444): include() #1 /var/www/html/sample/vendor/composer/ClassLoader.php(322): Composer\Autoload\includeFile('/var/www/html/s...') #2 [internal function]: Composer\Autoload\ClassLoader->loadClass('App\Application') #3 /var/www/html/sample/webroot/index.php(37): spl_autoload_call('App\Application') #4 {main} thrown in /var/www/html/sample/src/Application.php on line 43

このようなエラーメッセージが吐かれます。

自分の考えだとエラーの原因は最初に読み込んだAuthenticationプラグインの場所が悪いからだと思い、cakephpプラジェクトのrootディレクトリについて調べたのですが、ネットで調べてもいまいちcakephpプラジェクトのrootディレクトリというのがどこにあるのか分かりません。もしよければcakephpプラジェクトのrootディレクトリというものがどこを指示しているのか。このエラーメッセージの原因は何なのか。この二点をご教授して頂きたいです。
宜しくお願い致します。

参考にしたサイト↓↓↓↓↓↓↓↓↓↓
CakePHP 4 で Authentication プラグインを使ってユーザー認証を実装
CakePHP4でブログサイト作るチュートリアル
CakePHP4でログイン、ログアウトを実装する
CakePHP4を試す

composer.jsonファイル

php

1{ 2 "name": "cakephp/app", 3 "description": "CakePHP skeleton app", 4 "homepage": "https://cakephp.org", 5 "type": "project", 6 "license": "MIT", 7 "require": { 8 "php": ">=7.2", 9 "cakephp/cakephp": "~4.2.0", 10 "cakephp/migrations": "^3.0", 11 "cakephp/plugin-installer": "^1.3", 12 "mobiledetect/mobiledetectlib": "^2.8" 13 }, 14 "require-dev": { 15 "cakephp/bake": "^2.3", 16 "cakephp/cakephp-codesniffer": "~4.2.0", 17 "cakephp/debug_kit": "^4.4", 18 "josegonzalez/dotenv": "^3.2", 19 "phpunit/phpunit": "~8.5.0 || ^9.3", 20 "psy/psysh": "@stable" 21 }, 22 "suggest": { 23 "markstory/asset_compress": "An asset compression plugin which provides file concatenation and a flexible filter system for preprocessing and minification.", 24 "dereuromark/cakephp-ide-helper": "After baking your code, this keeps your annotations in sync with the code evolving from there on for maximum IDE and PHPStan/Psalm compatibility.", 25 "phpstan/phpstan": "PHPStan focuses on finding errors in your code without actually running it. It catches whole classes of bugs even before you write tests for the code." 26 }, 27 "autoload": { 28 "psr-4": { 29 "App\": "src/" 30 } 31 }, 32 "autoload-dev": { 33 "psr-4": { 34 "App\Test\": "tests/", 35 "Cake\Test\": "vendor/cakephp/cakephp/tests/" 36 } 37 }, 38 "scripts": { 39 "post-install-cmd": "App\Console\Installer::postInstall", 40 "post-create-project-cmd": "App\Console\Installer::postInstall", 41 "check": [ 42 "@test", 43 "@cs-check" 44 ], 45 "cs-check": "phpcs --colors -p src/ tests/", 46 "cs-fix": "phpcbf --colors -p src/ tests/", 47 "stan": "phpstan analyse", 48 "test": "phpunit --colors=always" 49 }, 50 "prefer-stable": true, 51 "config": { 52 "sort-packages": true 53 } 54}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/01/13 06:40

composer.json もご提示ください。
meruchaaan

2021/01/13 06:45

提示させて頂きました。 宜しくお願い致します。
m.ts10806

2021/01/13 06:47

composer.jsonに authenticationを読み込む記述がないですね。 参考記事通り、コマンドで入れたということですか?
meruchaaan

2021/01/13 06:50

まずは次のようにAuthenticationプラグインをインストールします。 > cd <CakePHPプロジェクトのROOTディレクトリ> ↵ > composer require cakephp/authentication:^2.0 ↵ こちらの記事内容を参考にコマンドを入力しました。
m.ts10806

2021/01/13 08:45

同じ質問立ててませんか? 実行したときの結果エラーがなければcomposerの管理下に入っているはずなのでオートローダーを読み込んでいれば問題なく使えるはずです。
meruchaaan

2021/01/13 08:52

解決いたしました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問