声明:本人菜鸟一枚,由于项目中需要用到zf2框架进行开发,在此记载学习使用过程中的点点滴滴。才疏学浅,请多指教。。。。。。。。。。。。。

-----------------------------------------------------------------------------------------------------------------------------------------------------------

开发过程中使用的环境及工具如下:

开发环境:LNMP: Linux+Nginx+MySQL5.5+php5.6

zf版本:zf2.2

IDE工具:NetBeans8.1

Zend Framework 官方网址:http://www.zendframework.com/

注:zf2需要PHP 5.3+才能正常运行,zf2对zf1不兼容。

-------------------------------------------------------------------------------------------------------------------------------------

一、zend farmwork2简介

ZF2是一个基于PHP的开源框架,可以用来开发WEB应用程序的各种服务。ZF2是一个基于面向对象的框架,一切都是以对象为基础。ZF2有非常丰富的组件库,而且大部组件之间相互独立,互不依赖,所以开发者可以独自开发并使用自定义组件。

ZF2 拥有一个强大而且高效的MVC实现,他具有强大的数据库操作、路由控制、视图渲染、HTML表单解析、表单验证、数据过滤等功能;同时ZF2还提供了多种用户认证功能,通过证书来保存用户认证和授权信息,也可以通过Amf 来为Flash等其他语言开发的软件提供相应的服务。总的来说不论你需要什么功能,你都可以从ZF2中找到相应的组件来实现,从而有效的减少开发时间,提高项目开发的效率。ZF2提供的各种组件可以用来实现你想要的各种功能,也可以添加一些你自定义组件来搭建你强大的WEB应用程序。

二、项目搭建

创建一个项目文件夹cisp,并在cisp里手动创建如下文件夹:

├─config
│ └─autoload
├─module
│ ├─Dao
│ └─sitefront
├─public
│ ├─css
│ └─js
└─vendor

cisp:网站的根目录

config:用于设置网站的配置,如数据库账号,密码等

module:网站的业务逻辑实现部分,使用MVC模式在该目录内开发

Dao:MVC结构的M共享部分

sitefront:controller文件和view文件存放目录

public:存放css,js,image等资源文件,同时index.php是网站的主要入口文件

vendor:用于存放zf2框架以及其他第三方的PHP插件如图表,execl,sina接口文件等

 二、虚拟主机配置

文件目录建好之后,需要对虚拟机的Nginx配置文件进行配置一个虚拟主机,Nginx.conf的配置如下:

<VirtualHost *:80>
ServerName cisp.local

DocumentRoot /mnt/hgfs/vmshare/cisp/public
#SetEnv APPLICATION_ENV "production"
SetEnv APPLICATION_ENV "dev"
SetEnv ZF2_PATH "/var/www/zf2test/vendor/ZF2/library"
LimitRequestBody 0

Alias /imageUp /mnt/hgfs/vmshare/websharefile/imageUp
Alias /UploadImage /mnt/hgfs/vmshare/websharefile/UploadImage
Alias /UploadImageUserGroup /mnt/hgfs/vmshare/websharefile/UploadImageUserGroup
Alias /UploadResources /mnt/hgfs/vmshare/websharefile/UploadResources
#<Directory /var/www/simplexue/public>
<Directory /mnt/hgfs/vmshare/cisp/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

在本机的host文件内添加虚拟域名的配置:192.168.1.24 cisp.local

三、伪静态.htaccess添加

伪静态的主要功能是实现URL的重写,有利于搜索引擎进行抓取。在public文件夹下新建.htaccess文件,并添加如下配置:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(gif|jpe?g|png|bmp) /img/loader.gif [NC,L]
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]

四、添加测试文件

在public文件夹下新建index.php,该文件是网站项目的唯一入口。

添加测试代码:var_dump(123);die; 测试项目是否走通。

如图:

----------------------------------------------------------------------------------------------------

未完,待续。。。。。。。。。。。。。。。。。。

zend framework2学习(一)初步入门的更多相关文章

  1. Zend Framework2 入门教程(转)

    转载自: http://my.oschina.net/lai1362000/blog/201301 重申:这本书作者的截图我都放上去了,没侵权啊. 别问那么多,我只是一个安静的搬砖工. 摘要 Zend ...

  2. 前端学习 node 快速入门 系列 —— 初步认识 node

    其他章节请看: 前端学习 node 快速入门 系列 初步认识 node node 是什么 node(或者称node.js)是 javaScript(以下简称js) 运行时的一个环境.不是一门语言. 以 ...

  3. Shel脚本-初步入门之《06》

    Shel脚本-初步入门-06 Shell 脚本的建立和执行 6.Shell 脚本的建立和执行 6.1 Shell脚本的建立 在 Linux 系统中,Shell 脚本(bash Shell 程序)通常是 ...

  4. Shel脚本-初步入门之《01》

    Shel脚本-初步入门-什么是 Shell 1.什么是 Shell Shell 是一个命令解释器,它的作用是解释执行用户输入的命令及程序等.Shell 存在于操作系统的最外层,负责与用户直接对话,把用 ...

  5. Shel脚本-初步入门之《02》

    Shel脚本-初步入门-什么是 Shell 脚本 2.什么是 Shell脚本 当命令或程序语句不在命令行下执行,而是通过一个程序文件来执行时,改程序就被称为 Shell 脚本.如果在 Shell 脚本 ...

  6. Shel脚本-初步入门之《03》

    Shel脚本-初步入门-Shell 脚本在 Linux 运维工作中的地位 3.Shell 脚本在 Linux 运维工作中的地位 Shell 脚本语言很适合用于处理纯文本类型的数据,而 Linux 系统 ...

  7. Shel脚本-初步入门之《04》

    Shel脚本-初步入门-04 脚本语言的种类 4.脚本语言的种类 4.1 Shell 脚本语言的种类 Shell 脚本语言是弱类型语言(无须定义变量的类型即可使用),在 Unix/Linux 中主要有 ...

  8. Shel脚本-初步入门之《05》

    Shel脚本-初步入门-05 常用操作系统默认的 Shell 5.常用操作系统默认的 Shell 通过以下两种方法可以查看 CentOS Linux 系统默认的 Shell 方法1: echo $SH ...

  9. 前端学习 node 快速入门 系列 —— npm

    其他章节请看: 前端学习 node 快速入门 系列 npm npm 是什么 npm 是 node 的包管理器,绝大多数 javascript 相关的包都放在 npm 上. 所谓包,就是别人提供出来供他 ...

随机推荐

  1. Oracle数据库入门——高水位线详解

    一.什么是水线(High Water Mark)? 所有的oracle段(segments,在此,为了理解方便,建议把segment作为表的一个同义词) 都有一个在段内容纳数据的上限,我们把这个上限称 ...

  2. Science上发表的超赞聚类算法

    本博客已经迁往http://www.kemaswill.com/, 博客园这边也会继续更新, 欢迎关注~ 作者(Alex Rodriguez, Alessandro Laio)提出了一种很简洁优美的聚 ...

  3. CentOS 编译安装 mysql

    1.前期准备 1.1 环境说明: 操作系统: CentOS release 6.4 (Final) [查看命令 cat /etc/redhat-release ] mysql : mysql-5.6. ...

  4. MSSQL 之事务订单存储过程

    1. 赋值   set  或者 select 运算符 2.全局,局部变量区别,生命域 (全局变量用户不能定义) 3.@@identity  返回最后插入行的标识列的列值. 4.delete 只删除了数 ...

  5. 基于jQuery点击加载动画按钮特效

    分享一款基于jQuery点击加载动画按钮特效.这是一款基于jQuery+CSS3实现的鼠标点击按钮加载动画特效代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div ...

  6. 个人对joomla3.2x和joomla2.5X浅薄看法

    很久没有写joomla文章了,发现想写的东西还是挺多的,后面抽时间补回来,其实更多还是php的一些东西.joomla3.0以后系统改变挺大,后台都是用bootstrap作为主题,个人对这个无爱,因为他 ...

  7. Popup 显示阴影

    WPF Popup: How to put a border around the popup? 通过设置 Border 的 margin 来为阴影留出位置,并设置 Popup: AllowsTran ...

  8. codeforces MUH and Important Things

    /* 题意:给一个序列,表示每一项任务的难度,要求完成每一项任务的循序是按照难度由小到大的!输出三种符合要求的工作顺序的序列! 思路:直接看代码.... */ 1 #include<iostre ...

  9. ruby -- 基础学习(四)TimeDate处理

     TimeDate格式化输出: DateTime.parse(Time.now.to_s).strftime('%Y-%m-%d %H:%M:%S').to_s #就是按照2013-8-16 16:4 ...

  10. NPM install - killed error solution

    在接手一个Node项目的时候,npm install.却出现了"killed"的错误.以为是Node版本的问题,熟练地切换了0.11与0.10版,同样无解. 由于新的npm版本吧, ...