将控制器中的数据附加到PHP框架中的视图,标准化

时间:2014-02-14 11:35:15

标签: php codeigniter symfony laravel

大多数现代PHP框架都使用数据附加方法,例如:

View->render('login', $errors); // or
View::make('login')->with(array('errors'=>$errors);

我正在尝试建立一个约定,即使View设计人员和Controller开发人员没有直接通信,他们也可以期待要放入哪些数据,以及接收哪些数据, 我想到了两种方法,首先使用一个负责渲染视图(包括数据)的类,这个类将包含将在平台中使用的所有类型的数据,第二种方法是遵循命名约定,我个人发现第一种方法更好,但我必须注意,我不是一个熟练的开发人员,我不确定该方法有什么含义,你会选择哪种方法? 也许是另一种方法?

1 个答案:

答案 0 :(得分:2)

对于直接视图渲染,您可以使用 View :: composer 方法。 视图组合器是在创建视图时调用的回调或类方法。如果每次在整个应用程序中创建视图时都希望绑定到给定视图的数据,则视图编辑器可以将该代码组织到一个位置。

关于自动渲染。 您应该通过Separation of concerns模式轻松完成与设计人员的沟通约定。

刀片模板语法非常适用于此,因为它将逻辑从您的视图中分离出来。根据逻辑,我的意思是来自域域层的所有数据(模型,数据库......)。

使用 {{$ data}} 语法对设计人员来说非常简单易懂。