データベース内のデータを管理する小さなアプリケーションを開発しています。私は Smarty テンプレート エンジンを使用してすべてを MVC スタイルで動作させ、PHP スクリプトがコントローラーとして機能し、smarty テンプレートがビューとして機能するようにして、コードをできるだけクリーンで構造化するようにしています。
ここで、パーミッションの概念を紹介したいと思います。たとえば、あるユーザーは一部のデータを表示および編集する権限を持ち、別のユーザーは同じデータの別の部分を表示または編集する別の権限を持つことができます。
2 か所でチェックを行っています。 1. アクションを実行する前に、ユーザーが権限を持っているかどうかをチェックするコントローラ自体。2. ユーザーがアクセス許可を持っているかどうかを確認し、それぞれのコントロールを無効にするか、読み取り専用に変更するビュー (スマート テンプレート)。
ただし、後半は私の好みでは少し冗長になりすぎています。
<textarea id="description" name="description" rows="3"
{if !$user->can(Permissions::EDIT_DESCRIPTION)}readonly{/if}>{$item['description']|default:''}</textarea>
Smarty を使用して同じ結果を達成するために、もう少し宣言的または簡潔なこれに対するより良いアプローチはありますか?