October 29, 2008
7.11. 使用传统的模块目录结构 第 7 章 Zend_Controller
"7.11. 使用传统的模块目录结构 7.11.1. 简介 传统的模块目录结构允许你把不同的MVC应用程序分离成为独立的单元,并和不同的前端控制器配合再使用。示例一下这样的目录结构:\ndocroot/ index.php application/ default/ controllers/ IndexController.php FooController.php models/ views/ scripts/ index/ foo/ helpers/ filters/ blog/ controllers/ IndexController.php models/ views/ scripts/ index/ helpers/ filters/ news/ controllers/ IndexController.php ListController.php models/ views/ views/ scripts/ index/ list/ helpers/ filters/ 在这个范例中,模块名作为它所包含的控制器的前缀。上面的例子包含三个模块控制 …"
October 26, 2008
php构造函数和析构函数
"构造函数 void __construct ([ mixed $args [, $… ]] ) PHP 5 允行开发者在一个类中定义一个方法作为构造函数。具有构造函数的类会在每次创建对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。\nNote: 如果子类中定义了构造函数则不会暗中调用其父类的构造函数。要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct()。\nExample#1 使用新标准的构造函数\nclass BaseClass {\nfunction __construct() { print “In BaseClass constructor\\n”; } }\nclass SubClass extends BaseClass { function __construct() { parent::__construct(); print “In SubClass constructor\\n”; } }\n$obj = new BaseClass(); $obj = new SubClass(); ?\u0026gt; 为了实现向后兼容性, …"
October 26, 2008
php范围解析操作符(::)
"范围解析操作符(::) 范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,可以用于访问静态成员、方法和常量,还可以用于覆盖类中的成员和方法。\n当在类的外部访问这些静态成员、方法和常量时,必须使用类的名字。\n把 Paamayim Nekudotayim 选作该操作符的名字似乎有些奇怪。然而,这是 Zend 开发小组在写 Zend Engine 0.5 (被用于 PHP 3 中)时所作出的决定。事实上这个词在希伯莱文就是双冒号的意思。\nExample#1 在类的外部使用 :: 操作符\nself 和 parent 这两个特殊的关键字是用于在类的内部对成员或方法进行访问的。\nExample#2 :: from inside the class definition\n当一个子类覆盖其父类中的方法时,PHP 不会再执行父类中已被覆盖的方法,直到子类中调用这些方法为止。这种机制也作用于 构造函数和析构函数、重载 及 魔术 函数。\nExample#3 调用父类的方法\nmyFunc();\n?\u0026gt;\nStatic Keyword …"
October 26, 2008
php中访问控制
"访问控制 对属性或方法的访问控制,是通过在前面添加关键字 public、protected 或 private 来实现的。由 public 所定义的类成员可以在任何地方被访问;由 protected 所定义的类成员则可以被其所在类的子类和父类访问(当然,该成员所在的类也可以访问);而由 private 定义的类成员则只能被其所在类访问。\n对类成员的访问控制 类成员都必须使用关键字public、protected 或 private 进行定义\nExample#1 声明类成员\npublic;\necho $this-\u0026gt;protected; echo $this-\u0026gt;private; } }\n$obj = new MyClass(); echo $obj-\u0026gt;public; // 这行能被正常执行 echo $obj-\u0026gt;protected; // 这行会产生一个致命错误 echo $obj-\u0026gt;private; // 这行也会产生一个致命错误 $obj-\u0026gt;printHello(); // 输出 Public、Protected 和 Private\n/** …"
October 22, 2008
PHP V5.2 中的新增功能,第 5 部分: 跟踪文件上传进度
"级别: 中级\nTracy Peterson (tracy@tracypeterson.com), 自由撰稿人, Consultant\n2007 年 6 月 08 日\nPHP V5.2 为开发人员添加了 hook 以利用实时跟踪文件上传进度的功能。本文是 “PHP V5.2 中的新增功能” 系列文章(共五部分)的第 5 部分,将向您展示如何监视文件上传并相应地编写代码,以及如何创建 PHP 进度条。\nWeb 2.0 是 Internet 上最炙手可热的时髦字眼,投资者纷纷把资金投入到涉及这项技术的投资项目中。数以百万计的 Web 站点和应用程序覆盖的描述性术语有很多。使用 Web 2.0,我们将描述一类 Web 站点,这些站点都提供了了解 Internet 上数以百万计用户心声的途径。与众不同之处在于它们全都为用户提供了交流和分享与共同利益相关的观点和数据的场所,这些站点可以快速生成大量内容。\n每个用户都将提供某种内容 —— 评论咖啡店、上班路线等。YouTube 在这点上是一个优秀示例,为人们提供一个空间可以上传视频并使其他用户可以观看这些视频并提供反馈。YouTube 是 Web …"
October 22, 2008
MVC模式的PHP实现
"作者:Harry Fuecks 翻译:Easy Chen\nMVC模式在网站架构中十分常见。它允许我们建立一个三层结构的应用程式,从代码中分离出有用的层,帮助设计师和开发者协同工作以及提高我们维护和扩展既有程式的能力。\n视图(View)\n“视图”主要指我们送到Web浏览器的最终结果??比如我们的脚本生成的HTML。当说到视图时,很多人想到的是模版,但是把模板方案叫做视图的正确性是值得怀疑的。\n对视图来说,最重要的事情可能是它应该是“自我意识(self aware)”的,视图被渲染(render)时,视图的元素能意识到自己在更大框架中的角色。\n以XML为例,可以说XML在被解析时,DOM API有着这样的认知??一个DOM树里的节点知道它在哪里和它包含了什么。 (当一个XML文档中的节点用SAX解析时只有当解析到该节点时它才有意义。)\n绝大多数模板方案使用简单的过程语言和这样的模板标签:\n\u0026lt;p\u0026gt;{some_text}\u0026lt;/p\u0026gt; \u0026lt;p\u0026gt;{some_more_text}\u0026lt;/p\u0026gt; 它们在文档中没有意义,它们代表的意义只是PHP将用其他的东西来替换它。 …"
October 15, 2008
PHP 危险函数解释
"*** 在编译 PHP 时,如无特殊需要,一定禁止编译生成 CLI 命令行模式的 PHP 解析支持。 可在编译时使用 –disable-cli。一旦编译生成 CLI 模式的 PHP,则可能会被入侵者 利用该程序建立一个 WEBShell 后门进程或通过 PHP 执行任意代码!\nphpinfo() 功能描述:输出 PHP 环境信息以及相关的模块、WEB 环境等信息。 危险等级:中\npassthru() 功能描述:允许执行一个外部程序并回显输出,类似于 exec()。 危险等级:高\nexec() 功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等)。 危险等级:高\nsystem() 功能描述:允许执行一个外部程序并回显输出,类似于 passthru()。 危险等级:高\nchroot() 功能描述:可改变当前 PHP 进程的工作根目录,仅当系统支持 CLI 模式 PHP 时才能工作,且该函数不适用于 Windows” onclick=”tagshow(event)” class=”t_tag”\u0026gt;Windows 系统。 危险等级:高\nscandir() 功能描 …"
October 15, 2008
Mysql基础优化第一讲
"Mysql基础优化第一讲 讲师:陈书艺\n参数的调整可以通过修改 /etc/my.cnf 文件并重启 MySQL 实现。这是一个比较谨慎的工作,上面的结果也仅仅是我的一些看法,你可以根据你自己主机的硬件情况(特别是内存大小)进一步修改。\n同时在线访问量继续增大 对于1G内存的服务器明显感觉到吃力严重时甚至每天都会死机 或者时不时的服务器卡一下 这个问题曾经困扰了我半个多月MySQL使用是很具伸缩性的算法,因此你通常能用很少的内存运行或给MySQL更多的被存以得到更好的性能。\n安装好mysql后,配制文件应该在/usr/local/mysql/share/mysql目录中,配制文件有几个,有my-huge.cnf my-medium.cnf my-large.cnf my-small.cnf,不同的流量的网站和不同配制的服务器环境,当然需要有不同的配制文件了。\n一般的情况下,my-medium.cnf这个配制文件就能满足我们的大多需要;一般我们会把配置文件拷贝到/etc/my.cnf 只需要修改这个配置文件就可以了,使用mysqladmin variables …"
October 15, 2008
mysql忘记root密码的解决方法
"一. MySQL密码的恢复方法之一 如果忘记了MySQL的root密码,可以用以下方法重新设置:\nKILL掉系统里的MySQL进程; killall -TERM mysqld 用以下命令启动MySQL,以不检查权限的方式启动; safe_mysqld –skip-grant-tables \u0026amp; 然后用空密码方式使用root用户登录 MySQL; mysql -u root 修改root用户的密码; mysql\u0026gt; update mysql.user set password=PASSWORD(‘新密码’) where User=’root’; mysql\u0026gt; flush privileges; mysql\u0026gt; quit 重新启动MySQL,就可以使用新密码登录了。 二. MySQL密码的恢复方法二 有可能你的系统没有 safe_mysqld 程序(比如我现在用的 ubuntu操作系统, apt-get安装的mysql) , 下面方法可以恢复 停止mysqld; /etc/init.d/mysql stop (您可能有其它的方法,总之停止mysqld的运行就可以了) 用 …"
October 15, 2008
Linux必学的60个命令
"Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。\n◆ 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last; ◆ 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln; ◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 …"