韩顺平 PHP视频教程 zend framework 第1讲 ——第4讲 札记心得
韩顺平 PHP视频教程 zend framework 第1讲 ——第4讲 笔记心得
韩顺平 PHP视频教程 zend framework第1讲 zend介绍 zend快速入门
Mvc 框架 –zend framework
一 zend framework的简介
1 php流行的MVC框架介绍
a zend framework
b thinkphp(国人开发)
c yii(外企用的比较多)
d cakephp
m model模型
v view 视图
c controller控制器
核心的设计思想:把数据的输入,数据的处理,数据的显示分开。
框架:有zend framework提供一个目录结构和规范,我们程序员只需要在规定的文件和位置写自己的代码就ok了。
优点:
a 程序更加规范
b 程序的开发效率提高了
c 程序的可读性增加
d 程序的可维护性增加了
不足:
配置比较复杂。
二 为什么有zend framework
三 zend framework的原理
四 zend framework版用户登录系统
五 zend framework的投票系统
六 zend framework购物车系统
Php发送电子邮件。
快速体验案例
目的是让大家开发zend framework项目的基本流程,配置如何处理。
配置成功后,可以看到欢迎界面即可。
开发步骤:
1 下载一个最新的zend framework
2 创建一zend framework工程
2.1 手工创建
2.2 Zf.bat创建
2.2.1 进入zf.bat所在目录
2.2.2 使用命令zf.bat create project 项目的全路径
2.2.3 zendstudio 创建
2.2.4 拷贝直接创建
2.2.5 引入库到项目中 library目录下库大库小不影响,因为php主要是编译
2.2.6 开始配置apache,让它支持apache框架
2.2.7 开启PDO和PDO相关的数据库引擎
Php.ini中开启extension=php_pdo_mysql.dll
如果是php5.2 应该直接启动extension=php_pdo.dll
Apache的配置文件httpd.conf配置文件,修改如下
LoadModule rewrite_module modules/mod_rewrite.so
修改AllowOverride None为
AllowOverride All
韩顺平 PHP视频教程 zend framework第2讲 zend快速入门
配置虚拟主机:
如果开发环境是自定义安装:
启动虚拟主机,httpd.conf配置文件,修改如下
# Virtual hosts
Include "conf/extra/httpd-vhosts.conf"
Httpd-vhost.conf文件配置 配置我们自己的虚拟主机
#配置我们自己的虚拟主机
DocumentRoot "F:/xampp/htdocs/zendfrm/public"
ServerName harry.com
DirectoryIndex index.php http://harry.com/index.php
# This should be omitted in the production environment
SetEnv APPLICATION_ENV development
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
再hosts中添加dns目录
harry.com
韩顺平 PHP视频教程 zend framework第3讲 zend原理剖析 zend整合数据库
Uml时序图
Httpwatch 抓取http协议包的工具。
Bootstrap.php 对所有控制器的初始化工作
IndexController.php 对一个控制器做的初始化工作
日志记录启动文件:
F:\xampp\htdocs\zendfrm\public\index.php12-07-26 05:31:58
F:\xampp\htdocs\zendfrm\application\Bootstrap.php12-07-26 05:31:58
F:\xampp\htdocs\zendfrm\application\controllers\IndexController.php12-07-26 05:31:58init..
F:\xampp\htdocs\zendfrm\application\controllers\IndexController.php12-07-26 05:31:58index..
用户登录后,显示消息列表。
创建数据库
/*
Navicat MySQL Data Transfer
Source Server : localhost_3306
Source Server Version : 50516
Source Host : localhost:3306
Source Database : testzf
Target Server Type : MYSQL
Target Server Version : 50516
File Encoding : 65001
Date: 2012-07-26 14:10:03
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `message`
-- ----------------------------
DROP TABLE IF EXISTS `message`;
CREATE TABLE `message` (
`message_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`sender` varchar(64) NOT NULL,
`getter` varchar(64) NOT NULL,
`sendtime` datetime NOT NULL,
`content` varchar(2000) NOT NULL,
PRIMARY KEY (`message_id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of message
-- ----------------------------
INSERT INTO `message` VALUES ('1', '张三', '李海', '2012-07-19 14:01:33', '你好啊,还在吗?');
INSERT INTO `message` VALUES ('2', '李四', '张国荣', '2012-07-09 14:02:18', '风继续吹');
INSERT INTO `message` VALUES ('3', '回音哥', '郭德纲', '2012-07-26 14:02:39', '我的歌声里');
INSERT INTO `message` VALUES ('4', '李逍遥', '大s', '2012-07-26 14:03:25', '真漂亮');
INSERT INTO `message` VALUES ('5', '张柏芝', '谢霆锋', '2012-07-27 14:04:39', '原谅我吧');
INSERT INTO `message` VALUES ('6', '周立波', '周瑾', '2012-07-30 14:05:13', '你不和我搭档了吗?');
INSERT INTO `message` VALUES ('7', '李云龙', '刘少奇', '2012-07-17 14:07:08', '我是华野的');
INSERT INTO `message` VALUES ('8', '毛总东', '邓小平', '2012-07-25 14:07:40', '全心全意为人民服务');
INSERT INTO `message` VALUES ('9', '邓小平', '江泽民', '2012-07-25 14:08:10', '发展是硬道理');
Zend一般不和smarty融合一起操作。因为它自己有。
韩顺平 PHP视频教程 zend framework第4讲 zend原理深度剖析
总控index.php每次都经过这。即使输入harry.com/uu,只要保证前面的域名不变化,怎么访问资源都会到总控。
重写机制 .htaccess
RewriteEngine On 启用重写机制
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
. 除了\n的任意字符。
在php项目中,我们通过对url的重写,可以完成整个只有一个入口的项目
.htaccess
多入口
RewriteRule ^.*$\.php enter.php
RewriteRule ^.*$\.html enter.html
Index发送给apache rewrite机制记录下来 首先调用总控——boot——
约定俗成
如果有错误 ErrorController.php 该控制器来处理,它是处理机制。我们的控制器 区分大小写。
xxAction 的格式 xx不能大写
总控使用了一点反射机制。
步骤
1 先在controllers文件下添加
class testController extends Zend_Controller_Action{
public function init(){
}
public functionloginAction(){
//echo '用户登录';
$this->render("login");
}
}
优化代码:
Bootstrap.php 数据库初始化代码的优化。
抽象出来一个类
//做一个父类,专门供其它的Controller来继承
class BaseController extends Zend_Controller_Action{
public function init()
{
//初始化我们的数据库适配器
$url=constant("APPLICATION_PATH").DIRECTORY_SEPARATOR.'configs'.DIRECTORY_SEPARATOR.'application.ini';
$dbconfig=new Zend_Config_Ini($url,"mysql");
$db=Zend_Db::factory($dbconfig->db);
$db->query('SET NAMES UTF8');
Zend_Db_Table::setDefaultAdapter($db);
}
}

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

如果您是一位经验丰富的 PHP 开发人员,您可能会感觉您已经在那里并且已经完成了。您已经开发了大量的应用程序,调试了数百万行代码,并调整了一堆脚本来实现操作

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

字符串是由字符组成的序列,包括字母、数字和符号。本教程将学习如何使用不同的方法在PHP中计算给定字符串中元音的数量。英语中的元音是a、e、i、o、u,它们可以是大写或小写。 什么是元音? 元音是代表特定语音的字母字符。英语中共有五个元音,包括大写和小写: a, e, i, o, u 示例 1 输入:字符串 = "Tutorialspoint" 输出:6 解释 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。总共有 6 个元

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

PHP的魔法方法有哪些?PHP的魔法方法包括:1.\_\_construct,用于初始化对象;2.\_\_destruct,用于清理资源;3.\_\_call,处理不存在的方法调用;4.\_\_get,实现动态属性访问;5.\_\_set,实现动态属性设置。这些方法在特定情况下自动调用,提升代码的灵活性和效率。
