ホームページ > 記事 > PHPフレームワーク > laravelとthinkphpの違いは何ですか
1. テンプレートをレンダリングするさまざまな方法
Laravel フレームワークでは、return view() を使用してテンプレートをレンダリングします。 ;ThinkPHP は、$this->display() メソッドを使用してテンプレートをレンダリングします。
2. 実際の開発では、開発場所が固定されていないという問題がよく発生します。
これにより、データベースの構成が頻繁に変更され、開発作業に支障をきたすことになります。 TP は依然としてこの「災難」を回避できていませんが、laravel フレームワークでは、.env 環境ファイルの登場により、この問題は解決されています。 .env ファイルを別の作業場所に設定するだけでよく、git であっても svn であっても、「.env はファイルと一緒にサーバーに送信されない」ため、再度設定する必要はありません。
3. Laravel フレームワークは多数のクロージャを提供します
初心者として、私は現在 use メソッド、つまり外部変数を内部で使用する方法のみを使用しています。関数。
4. ポストで値を渡す際の注意点の違い
Laravel フレームワークでは、クロスサイト攻撃を考慮しているため、ポストモードで値を渡すフォームフォーム、値、{{csrf_field()}} がフォームに追加されていない場合、TokenMethodnotfound 構文エラーが報告され、クロスサイトを防ぐために TP フレームワークはコードを手動で完成させる必要があります攻撃します。
5. 条件判定文の書き方の違い
Laravel フレームワークにおける If else 判定文と foreach 文は @if で始まり @endif で終わる必要があります。そうでない場合は、構文エラーが報告され、@foreach @endforeach は同じであり、TP フレームワークは PHP 構文規則と同じ方法で使用され、if esle ステートメントを直接使用して判断し、foreach ループの走査を行います。
6. Laravel には、開発者が使用できる組み込みメソッドが多数あります
実際のアプリケーションでは、「let」という開発アイデアに近いです。バックグラウンドでフォーム検証を実行する場合など、オブジェクトはすべてを実行します。Laravel には多数の組み込み検証メソッドがあります。たとえば、ユーザー名を確認するには、validate メソッドで 'username'=>'required' (空にすることはできません) | alpha_dash (数字、文字、下線が必要) | between: 6,18 (数字の間) を使用できます。また、email; Same: フィールド名; diff: フィールド名などの組み込みメソッドも多数備えており、開発速度が大幅に向上します。
7. 暗号化方法
TP フレームワークでは、md5(); を使用してユーザー名とパスワードを暗号化します。ただし、md5 の欠点は、逆に解読される可能性があり、同じルールの下では、同じパスワードに対して md5 によって暗号化された文字列が同じに見える可能性があるため、セキュリティが低下する可能性があることです。ただし、Laravelフレームワークにはハッシュ暗号化の一方向暗号化方式が組み込まれており、同じパラメータで暗号化された文字列が同じ状況に現れることがないため、セキュリティが向上します。
8. テーブルの作成
Laravel にはデータベース テーブルを作成するための独自の独立した組み込み構造があるため、ネイティブ SQL ステートメントを使用する必要はありません。テーブル構築ツールは、データベースの確立、追加、削除、変更、クエリ、およびデータの対話に使用されます。 ThinkPHP では、SQL ステートメントやテーブル作成ツールを使用して、徐々にデータを改善する必要があります。
8.1. まずモデルを構築する必要があります: 私は gitbash を使用します。 Gitbash は Windows 上のコマンド ツールであり、msys GNU 環境をベースとして、git 分散バージョン管理ツールを備えており、主に git で使用されます。ただし、これを Laravel で直接使用することもできます: php 職人 make:model Models/GoodsModel -m を使用して、モデルの作成とテーブル構造 (/database/migrations) の作成を完了します。
8.2. 商品データテーブルにデータを入力します。データの種類は厳密に区別されており、追加する必要があることに注意してください。追加後、phpArtisan Migrateコマンドを使用してテーブルの作成を完了します。
Schema::create('goods', function (Blueprint $table) {
$table->increments('id')->comment('product Primary key') ;
$table->string('title')->comment('Title of the product');
8.3. フィールドが次の条件を満たしていない場合はどうすればよいですか要件があるのか、それとも追加する必要があるのか? ? 心配する必要はありません、github からプロジェクトを取得して、データ テーブルで直接変更します。 9、ORM
テーブル作成の導入時にモデルを作成するコマンドが使用されています:php Artisan make:model XXX;
Laravel のモデルは次のとおりです。オブジェクト指向開発アイデアの最良の解釈。要件を完了するのにオブジェクトを役立てましょう。5.1 マニュアルからの抜粋: (Laravel の Eloquent ORM は、データベースと対話するための美しく簡潔な ActiveRecord 実装を提供します。各データベーステーブルには、使用できる対応する「モデル」があります。データ テーブルと対話します。モデルを使用して、データ テーブル内のデータを検索し、データ テーブルにレコードを追加できます。)実際の使用では、また、モデルを作成することでデータをコントロールできることを実感しました 一括代入、テーブル間クエリ、モデルの削除やソフトデリート、モデルの関連付けなどのテーブル操作による利便性はもちろん実装可能ですTP フレームワークのモデルを使用します。これは意見の問題であり、個人の好みによって異なります。 .10. セッションの使用法
10.1. ThinkPHP はセッション操作をカプセル化しており、導入しなくても使用できますセッションの起動はアプリケーションの初期化時に自動的に実行されるため、セッションを開始するために手動で Session::start() を使用する必要はありません。セッション。
Session クラスのオペレーションを使用することと、通常の方法で $_SESSION を呼び出すことの間に本質的な違いはなく、Session クラスの多くのパラメータをプロジェクトの構成に応じて柔軟に設定できるという点だけです。一般的に使用される操作方法:
/ / セッション変数が存在するかどうかを確認します: Session::is_set('name');
// セッション変数に値を割り当てます: Session::set ('name','value');
// セッション変数の取得: Session::get('name');
10.2. Laravel のセッションの一般的なメソッド:
$request->session()->get( 'key');//セッション内のキー名を取得します
$request->session()->set(' key','default');//デフォルト値を設定します。指定されたキー名が存在しない場合、デフォルト値が返されます
$request->session()->all(); //すべてのデータを返す
session('k'=> ;$v);//セッション保存データ
とフラッシュメモリデータを書き込み session()->flash() して保持specific data->keep(['','']);
セッション ドライバーをカスタマイズすることもできます。
php 中国語 Web サイト、無料の laravel 入門チュートリアル が多数あり、オンラインで学習することを歓迎します。
以上がlaravelとthinkphpの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。