CakePHP2 で 、Windows XP のいわゆるローカル環境の XAMPP 上で行っています。環境構築方法は、◆簡易★最新版◆Apach 、MySAQL 、PHP を Windows 環境でも開発できるように簡☆単さを重視して Eclipse の Pleiades All in One PHP をインストールします。 | oki2a24 と、インストール ― CakePHP Cookbook v2.x documentation をご参照ください。CakePHP2 をインストールして、http://localhost/cake01/ でアクセスできるようにしました。
今回は最小限の手間で Users プラグインを動かすための手順を記します。
1.プラグインを用意します
CakeDC/users ・ GitHub からダウンロード後解凍し、フォルダを Users にリネーム、/app/Plugin に置きます。
CakeDC/utils ・ GitHub からダウンロード後解凍し、フォルダを Utils にリネーム、/app/Plugin に置きます。
CakeDC/search ・ GitHub からダウンロード後解凍し、フォルダを Search にリネーム、/app/Plugin に置きます。
2.データベースのテーブル用意します
Users プラグインを導入することで使用できるようになるスキーマシェルを実行して、users、user_details テーブルを作成します。
set path=%path%;C:\pleiades\xampp\php php C:\pleiades\xampp\htdocs\cake01\app\Console\cake.php schema create users --plugin Users
ちなみに、スキーマシェルを実行すると次のようになります。
schema create users --plugin Users Welcome to CakePHP v2.2.2 Console --------------------------------------------------------------- App : app Path: C:\pleiades\xampp\htdocs\cake01\app\ --------------------------------------------------------------- Cake Schema Shell --------------------------------------------------------------- The following table(s) will be dropped. user_details users Are you sure you want to drop the table(s)? (y/n) [n] > y Dropping table(s). user_details updated. users updated. The following table(s) will be created. user_details users Are you sure you want to create the table(s)? (y/n) [y] > y Creating table(s). user_details updated. users updated. End create.
またまたちなみに、スキーマを実行完了すると、次の2つのテーブル、users、user_detailsが作成されます。
mysql> desc users; +---------------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------------+--------------+------+-----+---------+-------+ | id | varchar(36) | NO | PRI | NULL | | | username | varchar(255) | NO | MUL | NULL | | | slug | varchar(255) | NO | | NULL | | | password | varchar(128) | YES | | NULL | | | password_token | varchar(128) | YES | | NULL | | | email | varchar(255) | YES | MUL | NULL | | | email_verified | tinyint(1) | YES | | 0 | | | email_token | varchar(255) | YES | | NULL | | | email_token_expires | datetime | YES | | NULL | | | tos | tinyint(1) | YES | | 0 | | | active | tinyint(1) | YES | | 0 | | | last_login | datetime | YES | | NULL | | | last_action | datetime | YES | | NULL | | | is_admin | tinyint(1) | YES | | 0 | | | role | varchar(255) | YES | | NULL | | | created | datetime | YES | | NULL | | | modified | datetime | YES | | NULL | | +---------------------+--------------+------+-----+---------+-------+ 17 rows in set (0.09 sec) mysql> desc user_details; +-----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+-------+ | id | varchar(36) | NO | PRI | NULL | | | user_id | varchar(36) | NO | | NULL | | | position | float | NO | | 1 | | | field | varchar(255) | NO | MUL | NULL | | | value | text | YES | | NULL | | | input | varchar(16) | NO | | NULL | | | data_type | varchar(16) | NO | | NULL | | | label | varchar(128) | NO | | NULL | | | created | datetime | YES | | NULL | | | modified | datetime | YES | | NULL | | +-----------+--------------+------+-----+---------+-------+ 10 rows in set (0.01 sec)
3.メール設定をします。
XAMPP のバージョンによっては、下記の設定が無効になっている場合があります。SSL SMTP サーバーを使用してのメール送信を可能にするため、コメントをはずし、下記のようにします。
C:\pleiades\xampp\php\php.ini
extension=php_openssl.dll
Gmail の SSL SMTP サーバ経由でメールを送信するため、設定を下記のように修正する。
/app/Config/email.php
public $default = array( 'host' => 'ssl://smtp.gmail.com', 'port' => 465, 'username' => 'example@gmail.com', 'password' => 'password_da_yo', 'transport' => 'Smtp', 'log' => true );
ちなみに、ユーザ名、パスワードを間違えたり、Google の2段階認証をオンにしていると次のエラーとなります。気をつけましょう。
SMTP Error: 535 5.7.1 http://support.google.com/mail/bin/answer.py?answer=14257 sa2sm5918183pbc.4
「XAMPP 環境」=「ドメインが localhost」が原因で noreply@localhost からのメールを Gmail の SSL SMTP サーバ経由で送信することができないため、自動送信メールの from のメールアドレスを変更します。次の一行をコードの最後に追加します。
app/Config/bootstrap.php
Configure::write('App.defaultEmail', 'example@gmail.com');
以上です。
★実際にユーザー登録してみます。
ログイン
http://localhost/cake01/users/users/add
ユーザ登録
ユーザ登録画面です。
仮登録完了でメールを確認してくださいのメッセージがログイン画面に表示されました。
ユーザ登録確認メール
メールのリンククリックで本登録完了です!
ユーザ情報編集
ログイン直後です。ユーザ一覧情報が表示されています。
ユーザ情報編集画面です。
ユーザ情報編集完了です。画面の移動はありません。
ユーザ詳細情報は1項目1行でテーブルに保存される仕様なんですね!ということは、ユーザの詳細情報(user_details に登録される)をプラグイン利用者が自由に決められるということです。これは便利です♪
パスワード変更画面です。
パスワード変更後、なぜか CakePHP のトップページに移動してしまいました。なぜでしょう?
ユーザ情報確認画面です。
パスワードリセット
パスワードを忘れたときの画面です。登録時のメールアドレスを入力します。
パスワードリセットのために入力したアドレスにメールを送ったメッセージが表示されました。
届いたメールのリンク
パスワードリセット画面です。
パスワードリセットが成功したとのメッセージです。やったね♪そしてログイン画面です。
おまけ
ログイン後画面でのセ
おわりに
印象としては、URL が users/users と users が2回繰り返されるのがちょっと、、、ですね。最初がプラグインをあらわし、次がコントローラーを表しているようですけれども。ですが、これは ルーティングで変更できますね。詳しくはプラグインのページを見ましょう♪
最後に、参考サイトです。アリガトウゴザイマス!!!
「CakeDC の Users Plugin を最小インストールする方法♪」への1件の返信
[…] – techwiki [CakePHP2] CakeDC Users Plugin をお勉強 | Japdoor CakeDC の Users Plugin を最小インストールする方法♪ | oki2a24 an internal error has occurred. cakephp – Google 検索 CakePHP のエラー An Internal […]