基础准备
不懂php开发环境搭建的可以去网上搜索下。相信学习这个框架的童鞋们也都不是菜鸟级的了。我习惯开发中直接用实际要发布的域名来做测试,这样将来发布后会省去一些不必要的麻烦。假如你的程序将来要发布到域名/qq_29572055上,这里简单介绍一下方法:
1、修改本机host,把你要测试开发的网络地址指向本地:
用文本编辑器打开:C:\Windows\System32\drivers\etc\host文件
最后一行添加:
1127.0.0.
这样从你本机的浏览器请求网址都会被解析到你的本机ip:127.0.0.1上。
2、打开apache的VirtualHosts配置文件建立添加虚拟网站文件映射。
2
3ServerAdminmqqkobe@
4DocumentRoot"D:/php/test/pub"
6ErrorLog"logs/dummy--error.log"
7CustomLog"logs/dummy--access.log"common
8
9OptionsFollowSymLinks
10AllowOverrideAll
11Orderallow,deny
12Allowfromall
13
14
3、根据上面的配置可以看出,需要把工程test的开发目录拷贝到D:/php下
4、默认情况下把框架的参考系统源码目录也拷贝到D:/php下
开发工具
这里推荐eclipse的php开发工具(PDT),笔者是从java开始接触程序开发的所以推荐eclipse下载地址:/pdt/downloads/一般下载allinone就好。
本人本地配的域名是框架网站的主域名:
15127.0.0.
特别说明:
1、因为示例中配置的域名是,所以下文所提到的地方你都需要自换成自己的域名。
2、为了让你更了解YY框架的原理和构成,我们先介绍几个简单的示例再介绍开发管理中心的使用,虽然开发管理中心会帮助我们省去一些敲代码的工作量,但是作为初学者,还是建议你一步一步的往下看。
Nginx的配置:
linux下我们更常用nginx来代替apache完成页面请求转发的工作,下面是在一个简单的nginx配置示例:
16userwwwwww;
17
18worker_processes1;
19
20error_log/home/wwwlogs/nginx_error.logcrit;
21
22pid/usr/local/nginx/logs/nginx.pid;
23
24#Specifiesthevalueformaximumfiledescriptorsthatcanbeopenedbythisprocess.
25worker_rlimit_nofile51200;
26
27events
28{
29useepoll;
30worker_connections51200;
31}
32
33http
34{
35includemime.types;
36default_typeapplication/octet-stream;
37
38server_names_hash_bucket_size128;
39client_header_buffer_size32k;
40large_client_header_buffers432k;
41client_max_body_size50m;
42
43sendfileon;
44tcp_nopushon;
45
46keepalive_timeout60;
47
48tcp_nodelayon;
49
50fastcgi_connect_timeout300;
51fastcgi_send_timeout300;
52fastcgi_read_timeout300;
53fastcgi_buffer_size64k;
54fastcgi_buffers464k;
55fastcgi_busy_buffers_size128k;
56fastcgi_temp_file_write_size256k;
57
58gzipon;
59gzip_min_length1k;
60gzip_buffers416k;
61gzip_http_version1.0;
62gzip_comp_level2;
63gzip_typestext/plainapplication/x-javascripttext/cssapplication/xml;
64gzip_varyon;
65
66#limit_zonecrawler$binary_remote_addr10m;
67
68#logformat
69log_formataccess'$remote_addr-$remote_user[$time_local]"$request"'
70'$status$body_bytes_sent"$http_referer"'
71'"$http_user_agent"$http_x_forwarded_for';
72server
73{
74listen80;
;
76indexindex.htmlindex.htmindex.php;
77root/home/test/pub;
78
79location/{
80if(!-e$request_filename){
81rewrite^/(.*)$/index.phplast;
82}
83}
84
85location~.*\.(php|php5)?$
86{
87try_files$uri=404;
88fastcgi_passunix:/tmp/php-cgi.sock;
89fastcgi_indexindex.php;
90includefcgi.conf;
91}
92
93location/status{
94stub_statuson;
95access_logoff;
96}
97
98location~.*\.(gif|jpg|jpeg|png|bmp|swf)$
99{
100expires30d;
101}
102
103location~.*\.(js|css)?$
104{
105expires12h;
106}
107
108access_log/home/wwwlogs/access.logaccess;
109}
110}
helloworld
功能需求:
输入地址/demo/hello.html,页面显示hellowolrd字符。
通过阅读和学习通用简单路由,你会知道这个请求页面的控制器文件是:
111controller/demo/hello.php。
在controller文件夹下建立demo目录和hello.php文件。
方式1:
编辑hello.php代码如下:
112<?php
113Page::ignore_view();
114Response::write("helloworld");
115?>
其中page类是对页面的一个封装类,里面有一系列的静态参数和方法供控制器直接修改和调用。
page::$need_view默认为true,执行完这个php文件之后框架会继续加载它对应的视图文件来执行,Page::ignore_view()将其设为false则执行完php文件后就不再寻找视图文件了。
Response::write方法是向客户端进行文本输出,执行后立即退出脚本。
方式2:
hello.php文件不写任何代码,可以建立空文件:controller/demo/hello.php。
建立文件:view/default/demo/hello.html
hello.html内容为:
116
helloWorld
由此可见,如果没有执行Page::ignore_view(),框架执行了hello.php文件之后,控制器会自动寻找视图文件hello.html文件加载执行。
方式3:
修改配置文件conf.php将$auto_find_view改为true。
117/**是否开启无控制器时自动寻找对应视图~默认:false*/
118publicstatic$auto_find_view=true;
无需创建控制器文件直接建立文件:view/default/demo/hello.html
内容为:
119
helloWorld
配置数据库
配置数据库连接
这只是一个标准示例,实际开发中并不一定一定按照示例的方式进行。框架的主配置文件是/yyuc/conf.php,它是一个被封装好的静类文件,有关数据库的配置如下:
120/**数据库地址~*/
121publicstatic$db_host="localhost";
122/**数据库端口~*/
123publicstatic$db_port="3306";
124/**数据库名~*/
125publicstatic$db_dbname="test";
126/**数据库用户名~*/
127publicstatic$db_username="root";
128/**数据库密码~*/
129publicstatic$db_password="";
130/**数据库表前缀~*/
131publicstatic$db_tablePrefix="qq_";