php – 熟悉MVC – 如何使用会话逻辑,附加类和后台逻辑
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 熟悉MVC – 如何使用会话逻辑,附加类和后台逻辑,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2793字,纯文字阅读大概需要4分钟。
内容图文
![php – 熟悉MVC – 如何使用会话逻辑,附加类和后台逻辑](/upload/InfoBanner/zyjiaocheng/765/cf483d0bdfc94a7c9043ab1f695908ea.jpg)
在编写PHP时,我决定从意大利面条代码转移并尝试实现MVC.
为了实现MVC框架,我发泄到this article
文章开了个好头,我设法创建了我的网站,并开发了前端.
现在,我正在尝试使用会话和其他成员区域功能来实现后端.我的大脑充满了新的信息,我有更多的问题而不是答案.
我不知道如何实现其他类,例如用户类.
例如,如果没有MVC,我可以在我的include目录中创建新的user.php类文件,然后包含它,实例化它,并为对象分配适当的值并将objest置于会话中.
我想请一个表示意见.
我对很多事感到困惑:
>我在哪里添加用户类
>如何在MVC中添加和包含用户类
>我如何在我的应用程序周围携带用户类(我在会话中理解,但会话必须有一个acees到用户对象
>如何执行登录/注销逻辑并执行背景中发生的必要操作
这可能是一个普遍的问题,一旦完成之前就不复杂了.我也为不太好的定义问题道歉,但我提前感谢您的帮助.
解决方法:
用户,MVC的上下文是domain object.但是会话是一种存储介质(就像缓存,数据库或文件系统一样).当您需要在那里存储来自User实例的数据时,可以使用某种类型的data mapper来执行此操作.
$user = $this->domainObjectFactory->build('user');
$user->setName('Korben')
->setSurname('Dallas');
if ( some_condition )
{
$mapper = $this->dataMapperFactory->create('session');
$mapper->store($user);
}
此代码应为会话和用户之间的交互提供极其简化的示例.
我在哪里添加用户类?
作为域对象,应在services内使用User实例并使用工厂进行初始化.在MVC的上下文中,服务是模型层中的结构,其处理应用程序逻辑.它们操纵和促进域对象和存储抽象的交互.
如何在MVC中添加和包含用户类?
应使用自动加载器添加所有类.您应该阅读有关使用spl_autoload_register()的信息,最好是在使用namespaces时.
实例本身的初始化应该由工厂完成.这使您可以将代码与所述实例的类名解耦.
如何在我的应用程序中携带用户类?
你没有.
PHP应用程序不会持久存在.你有一个HTTP请求,你可以用它做你需要的所有事情,发送响应并销毁应用程序. User类的实例都将是短暂的.
要在请求之间恢复当前用户,请在会话中存储标识符.不要在会话中转储整个对象.相反,在从会话中获取用户标识符后,您可以从其他存储形式中恢复其余的用户帐户详细信息(如果您需要它).
整个过程应该通过模型层中的某种“识别服务”或“认证服务”来执行和管理.
如何执行登录/注销逻辑并执行所需的操作?
登录请求首先由控制器处理:
public function postLogin( $request )
{
$service = $this->serviceFactory->create('recognition');
$service->authenticate( $request->getParameter('username'),
$request->getParameter('password') );
}
该服务尝试验证用户的凭据,这会改变模型层的状态.然后,视图实例会查找该状态,并将您重定向到作为经过身份验证的用户的登录页面,或者将您重定向回登录页面并显示错误消息.
服务本身将通过工厂在模型控制器和视图之间共享.这意味着他们只会初始化每个服务一次,然后只重用它.有点像:
class ServiceFactory
{
private $cache = array();
public function create( $name )
{
if ( array_key_exists($name, $this->cache) === false )
{
$this->cache[$name] = new $name;
}
return $this->cache[$name];
}
}
请记住,他是一个极其简化的例子.
For further reading I would recommend you to go through 07005. Also, you might find these 3 posts somewhat useful: 07006, 07007 and 07008.
内容总结
以上是互联网集市为您收集整理的php – 熟悉MVC – 如何使用会话逻辑,附加类和后台逻辑全部内容,希望文章能够帮你解决php – 熟悉MVC – 如何使用会话逻辑,附加类和后台逻辑所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。