首页 / PHP / PHP面向对象的Web应用程序
PHP面向对象的Web应用程序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP面向对象的Web应用程序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1526字,纯文字阅读大概需要3分钟。
内容图文
![PHP面向对象的Web应用程序](/upload/InfoBanner/zyjiaocheng/768/c28c2d97376340dfb253d2b9f4c3c49d.jpg)
我有一个名为“Layout”的类用于页面布局,另一个类叫做“User”用户.
我创建的每个页面都会实例化一个新的布局.
当用户登录时,会有一个新的用户实例化.
如何获取布局类的实例以了解实例化的用户?我还可以在会话变量中保存用户的整个实例.我认为这是个坏主意.这方面的最佳做法是什么?
class User
{
var $userid;
var $email;
var $username;
function User($user)
{
$this->userid = $this->getUid($user);
$this->email = $this->getEmail($user);
$this->username = $user;
}
function getUid($u)
{
...
}
function getEmail($u)
{
...
}
}
class Layout
{
var $var1;
var $var2;
var $var3;
function Layout()
{
//defaults...
}
function function1()
{
echo "something";
}
function function2()
{
echo "some other stuff";
}
function function3()
{
echo "something else";
}
}
所以在index.php中,例如,我会做以下事情:
include "user.php"
include "layout.php"
$homelayout = new Layout();
$homelayout->function1();
$homelayout->function2();
$homelayout->function3();
现在让我们说在login.php中有人登录:
include "layout.php"
include "user.php"
if(userAuthSuccess)
{
$currentUser = new User($_POST['username']);
}
只要用户没有注销,从这里开始访问所有php文件的$currentUser及其成员变量(如$currentUser-> email等)的最佳方法是什么?
解决方法:
由于每个请求只有一个用户,因此对于程序的每次运行,这将使“User”成为Singleton类,如下所述:
http://php.net/manual/en/language.oop5.patterns.php
这将为其他类提供一种方式来引用当前用户而不会访问错误的实例,因为只有一个.
免责声明:
是的,我知道Singeltons经常在错误的地方用于错误的目的,有些人倾向于将这个问题归咎于模式而不是那些滥用它的人为某些臭代码.
然而,这对于Singelton模式来说是一个非常好的用例.
内容总结
以上是互联网集市为您收集整理的PHP面向对象的Web应用程序全部内容,希望文章能够帮你解决PHP面向对象的Web应用程序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。