ホームページ バックエンド開発 PHPチュートリアル Yii2 の一貫した学習記録、Yii2 の初期化 (2)

Yii2 の一貫した学習記録、Yii2 の初期化 (2)

Jun 13, 2016 pm 12:29 PM
gt yii yii2

Yii2 関連の学習記録、Yii2 の初期化 (2)

Yii2 はダウンロード済みなので、実際に使えるようにする必要があります。

1. 初期化。Windows システムなので、cmd コマンドを使用して、ダウンロードした Yii2 のルート ディレクトリを開きます。次に、次のコマンドを実行します。

init
ログイン後にコピー

開発環境として 0 を選択し、運用環境として 1 を選択するように求められます。通常は実稼働環境を選択します。後からこのコマンドを入力して、開発環境と本番環境のリンクを切り替えることもできますが、切り替える際には、上書きして失われないように、本番環境の設定を事前に「environments」ディレクトリに書き込む必要があることに注意してください。切り替え時の設定項目については後ほど説明します。

2. これで、フロントエンド アクセス アドレスは http://localhost/vishun/backend/web/index.php になり、バックエンド アクセス アドレスは http:// になります。 localhost/vishun/frontend/web/index.php、vishun は Yii フレームワークがインストールされているディレクトリの名前です。ここでアクセスすると、データベースが接続されていないため、データベース接続エラーが報告されます。そのため、最初にデータベースを作成する必要があります (個人的には phpmyadmin を使用することをお勧めします)。次に、Yii2 でデータベース パラメータを設定します:

設定ファイルは 3 番目にあります。 common/config、frontend/config、backend/config の 3 つの場所があります。一般に、common はフロントエンドとバックエンドの両方で使用される設定ファイルであり、フロントエンドとバックエンドは独自の設定を保存するために使用されます。ファイルが繰り返される場合は、フロントエンドとバックエンドのパブリック ファイルが対象になります。

各フォルダーは main.php と main-local.php に分かれており、これは主にチーム メンバーが自分のコンピューター環境で開発し、 git または svn に送信します。したがって、チーム メンバーが自分のデータベース アカウントとパスワードを使用し、他のチーム メンバーがそれを更新し、自分のアカウントとパスワードが間違っていると、データベースとその他の構成ファイルが *- に配置されます。ローカル ファイルを送信する場合、*- ローカル ファイルは送信されません。

しかし、それを提出しないと、依然として問題が発生します。たとえば、新しいメンバーが参加して git から直接コードをダウンロードしても、データベース構成ファイルが全員によって提出されていない場合、プログラム全体が不完全なため、メンバーにはデータベース構成がまったくありません。したがって、上記の環境ディレクトリも使用する必要があります。dev (開発) と prod (本番) の 2 つの環境があり、主に *-local ファイルのテンプレートが保存されます。 init コマンドを使用すると、その中のファイルに基づいて *-local ファイルが生成され、新しいメンバーはそのファイルにデータベース アカウントのパスワードを入力することでそのファイルを使用できるようになります。

上記のチーム環境の詳細な説明は、ここにあります: Yii2.0 の深い理解 -- 環境および設定ファイル。これは非常に詳細です。

3. 設定が完了した後もエラーが報告されますが、これはデータリンクエラーではありませんが、ユーザーテーブルが見つかりません。次に、ユーザーテーブルを作成します。 Yii2 Advanced Edition フレームワークのユーザー テーブルが作成されました。console/migrations の下にある *_init.php ファイルを開くことができます。これは作成されたユーザー テーブルです。 cmd の Yii2 ルート ディレクトリでコマンドを実行するだけです:

yii migrate
ログイン後にコピー

ユーザー テーブルが作成されます。現時点では、フロントエンドとバックエンドの両方へのアクセスは問題ありません。 merge コマンドは、Yii フレームワークでデータベースを移行または変更するためのツールです。特にチーム コラボレーションにおいて、メンバーがローカル コンピューターにテーブルを追加した場合、コンソールでテーブルを作成するために yii merge/create コマンドを使用する方法を教えてください。 /migrations 変更を加え、追加したテーブルの内容をそこに書き込みます。送信後、他のメンバーが更新された後、yii merge コマンドを使用してデータベースを最新のデータベースに同期できます。これは非常に便利です。移行には多くの機能がありますが、それらについてはまだ完全には理解していません。これらについては、以下のフロントエンドとバックエンドの分離に関する章で説明する可能性があります。

4. さて、メールアドレスを設定しましょう。最初の 3 つの手順を完了したら、メンバーとして登録して確認することができます。パスワードを忘れた場合は、電子メールでパスワードを取得する必要があるため、次の電子メール アドレスを設定する必要があります。 🎜>

Yii2 Advanced メールボックス クラスはバージョン フレームワークに統合されています。common/config/main-local.php ファイルで確認できます。

'mailer' =><span style="color: #000000;"> [    </span>'class' => 'yii\swiftmailer\Mailer',    'viewPath' => [email protected]/mail',<span style="color: #000000;">]</span>,
ログイン後にコピー
これ。このファイルには個人アカウントに関する機密情報が含まれているため、関連する構成ファイルは *-local ファイルに追加されます。

上記の設定情報は不完全です。送信メールアドレス、ポート番号などを入力する必要があります。

'mailer' =><span style="color: #000000;"> [    </span>'class' => 'yii\swiftmailer\Mailer',    'viewPath' => [email protected]/mail',    <span style="color: #008000;">//</span><span style="color: #008000;"> send all mails to a file by default. You have to set    // 'useFileTransport' to false and configure a transport    // for the mailer to send real emails.</span>    'useFileTransport' => <span style="color: #0000ff;">false</span>,    'transport' =><span style="color: #000000;"> [          </span>'class' => 'Swift_SmtpTransport',          'host' => 'smtp.163.com', <span style="color: #008000;">//</span><span style="color: #008000;">我这里用163邮箱 </span>        'username' => '你的邮箱名',          'password' => '你的邮箱密码',          'port' => '25',          'encryption' => 'tls',<span style="color: #000000;">    ]</span>,
ログイン後にコピー
<code class="hljs dart"><span class="hljs-string">  //'messageConfig'=>[     //  <span class="hljs-string">'charset'=><span class="hljs-string">'UTF-8',     //  <span class="hljs-string">'from'=>[<span class="hljs-string">'你的邮箱名'=><span class="hljs-string">'robot']     //],  </span></span></span></span></span></span></code><span style="color: #000000;">           ]</span>,        
ログイン後にコピー
に変更してください。 して送信します。 電子メール処理メソッド全体は Yii2 Advanced Edition で記述されているため、送信するための設定のみが必要です。

上記を設定した後でも、パスワードを取得して電子メールを送信すると、次のようなエラーが発生する場合があります。

Expected response code 250 but got code "553", with message "553 Mail from must equal authorized user
ログイン後にコピー
これは、一部のメールが原因です。 NetEase のサーバーなど、サーバーの要求元とユーザー名は常に同じである必要があり、frontend/models/PasswordResetRequestForm.php の sendEmail メソッドは 63 行目あたり、

 ->setFrom([\Yii::<span style="color: #800080;">$app</span>->params['supportEmail'] => \Yii::<span style="color: #800080;">$app</span>->name . ' robot'])
ログイン後にコピー
で指定されています。

From是取得supportEmail参数,这个参数在common/config/params.php中定义了默认为:[email protected],[email protected]?一是把这个参数改成‘你的邮箱名’就可以正常发送了;方法二是将上方配置文件<span class="hljs-string">messageConfig</span>注释的取消,然后->setFrom这行删除掉。(所有的这些首先确保先开通smtp服务)

顺便说下,因为你邮箱配置实在*-local文件中,所以为了其它成员也都能用你这个配置,应该在environments/dev/common/main-local.php中添加:

'mailer' =><span style="color: #000000;"> [    </span>'class' => 'yii\swiftmailer\Mailer',    'viewPath' => [email protected]/mail',    <span style="color: #008000;">//</span><span style="color: #008000;"> send all mails to a file by default. You have to set    // 'useFileTransport' to false and configure a transport    // for the mailer to send real emails.</span>    'useFileTransport' => <span style="color: #0000ff;">false</span>,    'transport' =><span style="color: #000000;"> [          </span>'class' => 'Swift_SmtpTransport',          'host' => '', <span style="color: #008000;">//</span><span style="color: #008000;">空着,让其他人自己填写</span>        'username' => '',          'password' => '',          'port' => '',          'encryption' => 'tls',<span style="color: #000000;">    ]</span>,    'messageConfig'=><span style="color: #000000;">[      </span>'charset'=>'UTF-8',      'from'=>[''=>'robot'<span style="color: #000000;">]      ]</span>,<span style="color: #000000;">             ]</span>,        
ログイン後にコピー

这样,其他人更新时只需init命令一下,然后要填上自己的邮箱账号就可以发送邮件了。

很多时候邮件填写都是从数据库获取的,这时候就不应该在配置文件中了,而是应该单独写个类,(类似新建components文件并引入,写在这里面),顺便封装下发送方法。我自己也没实现过,只是思路而已。

以上就是Yii2高级版的初始化,下节可能记录下如何套用好看的后台界面和gii自定义模板什么的。睡觉了先。

 

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Huawei GT3 ProとGT4の違いは何ですか? Huawei GT3 ProとGT4の違いは何ですか? Dec 29, 2023 pm 02:27 PM

多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

修正: Windows 11 で Snipping ツールが機能しない 修正: Windows 11 で Snipping ツールが機能しない Aug 24, 2023 am 09:48 AM

Windows 11 で Snipping Tool が機能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する

iPhoneでApp Storeに接続できないエラーを修正する方法 iPhoneでApp Storeに接続できないエラーを修正する方法 Jul 29, 2023 am 08:22 AM

パート 1: 最初のトラブルシューティング手順 Apple のシステムステータスを確認する: 複雑な解決策を掘り下げる前に、基本から始めましょう。問題はデバイスにあるのではなく、Apple のサーバーがダウンしている可能性があります。 Apple のシステム ステータス ページにアクセスして、AppStore が適切に動作しているかどうかを確認してください。問題があれば、Apple が修正してくれるのを待つしかありません。インターネット接続を確認します。「AppStore に接続できません」問題は接続不良が原因である場合があるため、安定したインターネット接続があることを確認してください。 Wi-Fi とモバイル データを切り替えるか、ネットワーク設定をリセットしてみてください ([一般] > [リセット] > [ネットワーク設定のリセット] > [設定])。 iOS バージョンを更新します。

yii2でjqueryを削除する方法 yii2でjqueryを削除する方法 Feb 17, 2023 am 09:55 AM

yii2 から jquery を削除する方法: 1. AppAsset.php ファイルを編集し、変数 $depends の「yii\web\YiiAsset」値をコメント アウトします; 2. main.php ファイルを編集し、設定「'yii」を以下に追加しますフィールド「components」\web\JqueryAsset' => ['js' => [],'sourcePath' => null,]," を使用して jquery スクリプトを削除します。

Symfony と Yii2: 大規模な Web アプリケーションの開発にはどちらのフレームワークが適していますか? Symfony と Yii2: 大規模な Web アプリケーションの開発にはどちらのフレームワークが適していますか? Jun 19, 2023 am 10:57 AM

Web アプリケーションの需要が高まるにつれ、開発者が開発フレームワークを選択する選択肢はますます増えています。 PHP フレームワークとして人気のある Symfony と Yii2 は、どちらも強力な機能とパフォーマンスを備えていますが、大規模な Web アプリケーションを開発する必要がある場合、どちらのフレームワークがより適しているのでしょうか。次に、より良い選択を行うために、Symphony と Yii2 の比較分析を行います。基本概要 Symphony は、PHP で書かれたオープンソースの Web アプリケーション フレームワークであり、上に構築されています。

PHP フレームワーク Yii を使用して可用性の高いクラウド バックアップ システムを開発する方法 PHP フレームワーク Yii を使用して可用性の高いクラウド バックアップ システムを開発する方法 Jun 27, 2023 am 09:04 AM

クラウド コンピューティング テクノロジの継続的な発展により、データのバックアップはすべての企業が行う必要のあるものになりました。この文脈では、可用性の高いクラウド バックアップ システムを開発することが特に重要です。 PHP フレームワーク Yii は、開発者が高性能の Web アプリケーションを迅速に構築できる強力なフレームワークです。ここでは、Yii フレームワークを使用して可用性の高いクラウド バックアップ システムを開発する方法を紹介します。データベースモデルの設計 Yii フレームワークでは、データベースモデルは非常に重要な部分です。データ バックアップ システムには多くのテーブルとリレーションシップが必要なため、

Yii フレームワークでのデータクエリ: データに効率的にアクセスする Yii フレームワークでのデータクエリ: データに効率的にアクセスする Jun 21, 2023 am 11:22 AM

Yii フレームワークは、Web アプリケーション開発のプロセスを簡素化するための多数のツールとコンポーネントを提供するオープンソースの PHP Web アプリケーション フレームワークであり、その重要なコンポーネントの 1 つがデータ クエリです。 Yii フレームワークでは、SQL に似た構文を使用してデータベースにアクセスし、データを効率的にクエリおよび操作できます。 Yii フレームワークのクエリビルダーには主に次の種類があります: ActiveRecord クエリ、QueryBuilder クエリ、コマンド クエリ、独自の SQL クエリ

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

See all articles