0

私は最近、PHP 用の優れたredbean ORM ライブラリを発見しました。これにより、私の Web アプリケーションで CRUD 操作を簡単に実行できるようになりましたが、最近、いくつかの追加機能を実装しました。データの保存をさらに簡単にするために、redbean.php という手続き型のフォーム処理スクリプトを作成しました。このスクリプトがフォーム アクションとして指定されると、送信されたデータに基づいて新しい Bean が動的に作成されます。

<?php Template::startContent(); ?>

<form action="forms/redbean.php" method="POST">
    <input type="hidden" name="bean" value="book"/>
    <input type="text" name="author"/>
    <input type="text" name="pubDate"/>
    <input type="submit" value="Save Bean!"/>
</form>

<?php Template::endContent(); ?>

私がこのアプローチに疑問を持ち始めた理由は、私のフレームワークの他のすべてが MVC パターンを使用しているからですが、データがビューから ORM ライブラリに直接送られるため、これはごまかしのように感じます。とにかく、PHP と Web プログラミング全般のベスト プラクティスを使用してこのアプリケーションを実装しようとしています。この実装で考慮する必要があります。

4

2 に答える 2

2

本当に MVC パターンに固執しようとしている場合は、ビューでスクリプトをランダムに呼び出してデータベースにデータを追加することで、真のパターンに固執していません。MVC の目的の 1 つは、統一性です。フォーム データがコントローラーに渡され、コントローラーがモデルを呼び出してデータを検証して保存し、表示されたビューにエラーまたは成功の呼び出しを返します。あなたが説明したことから、あなたのスクリプトはそれをすべて無視してBeanを作成します。

ここで、スクリプトに検証があることを考慮して、検証に変更を加えた場合は、それをこのスクリプトに反映する必要があります。シンプルさはゲームの名前であり、複数の場所でコードを繰り返すのは無駄です。

MVC ルールに準拠したい場合は、その多くをモデルにコピーして、そこで処理してください。スクリプトを使用して、MVC を引き続き使用できるようになります。

最終的には、それはあなたのスクリプトです。それが機能する場合、機能します。生産資料やチームで作業している場合は、使用しません。それが個人的な使用またはあなたの個人的なウェブサイトのためだけの場合は、それを選択してください.

于 2013-08-21T18:47:54.970 に答える
0

あなたのアプローチは問題ないと思います-セキュリティと検証に注意してください。RedBeanPHP は、Cooker を使用してこのアプローチを容易にします。これは、まさにあなたが説明したことを行いますが、リレーションのサポートも追加します: http://www.redbeanphp.com/cooker

非常に強力で、セキュリティホールを簡単に作成できるため、少し怖いですが、正しく処理すれば、面倒な MVC パターンを回避して、非常に高速な開発を行うことができます。

OOP、MVC、およびパターンにはあまり注意を払わないでください。これらはしばしば非常に便利ですが、使いすぎてしまう傾向があります。また、これらの手法の多くは、別のドメインで開発されており、機能が向上しており、このドメインから Web にコピーされています。たとえば、MVC はデスクトップ GUI に由来し、OOP は Smalltalk などに由来します。これらは PHP で依然として有用ですが、正しく使用しないことを心配する必要はありません。これらは PHP ドメインにインポートされているため、もはや正しい方法はありません。うまくいくことは何でもしてください。最も重要なことは、あなた (およびあなたの同僚) がコードを簡単に読んで保守できることです。それで全部です。

于 2013-09-15T12:04:34.607 に答える