不帅 发表于 2015-2-3 23:57:24

PHP教程之PHP.MVC的利用办法

接触MYSQL,开始设计数据库程序   1.从http://www.apache.org下载响应的Apache版本。
2.从http://www.php.net下载响应的PHP版本。
3.从http://www.phpmvc.net下载响应的php.MVC版本。
4.创立目次c:\www作为Web办事器目次,c:\webapp作为Web根目次,
你也能够界说本人的目次,以下作响应的修正便可。
5.将Apache装置到c:\www,翻开阅读器,在地址栏输出http://localhost测试是不是装置胜利
注重:假如你的体系上已装置有其他Web办事器(如IIS 5),且占用了80端口,请先中断该办事器。
6.把php紧缩到一个目次下,如:f:\php5
7.把php目次下的php.ini-dist拷贝到体系目次,C:\winnt,更名叫php.ini
8.依据php的版本,这里是php5,把php5ts.dll和libXXX.dll文件拷贝到C:\winnt\system32下
9.翻开apache的设置装备摆设文件httpd.conf,apache默许装置在C:\Program Files\Apache Group\Apache2下,因而设置装备摆设文件就在这个目次的conf下
10.找到LoadModule那行,鄙人面输出:LoadModule php5_module "F:/php5/php5apache2.dll"(请依据你的地位修正)
11.找到AddType那行,鄙人面到场:AddType application/x-httpd-php .php
12.保留设置装备摆设文件,翻开php.ini文件
13.找到doc_root,在等号前面的引号里写上你的apache的web根目次,如:doc_root = "C:\www"
14.找到extension_dir,在等号前面的引号里写上你的php5目次下的ext目次地址,如:extension_dir = "f:\php5\ext".注:php4是extension目次
15.找到extension,这些行后面都有逗号,就是正文,你可以看你的php5下的ext目次下(php4是extension目次)有那些dll,然后就把后面的逗号去失落.
16.保留php.ini,翻开apache,假如有毛病请细心检查下面的步调.然后在写一个php文件,内容是:
<?php
phpinfo();
?>
保留为test.php,然后放到web根目次下,翻开阅读器,输出:http://localhost/test.php,看看能不克不及准确显示.如准确即装置胜利.

装置php.mvc:

1.将下载的php.mvc解压到web根目次下的phpmvc下(可本人更名字).
2.翻开phpmvc下的Main.php翻开,找到
$appServerRootDir = 'c:\webapp\phpmvc'; // no trailing slash
引号两头就是你要修正的phpmvc的解压目次
$moduleRootDir    = 'c:\webapp\phpmvc'; // no trailing slash
引号两头修正为和$appServerRootDir一样,由于这里是phpmvc的主目次,所以一样
$osType = 'WINDOWS';
引号两头修正为你的操作体系名,它的值只能是UNIX,WINDOWS,MAC中的一个
3.保留此文件,确认c:\webapp\phpmvc\WEB-INF目次下phpmvc-config.data有可写权限。
4.翻开阅读器,在地址栏输出http://localhost/phpmvc/Main.php?do=stdLogon测试是不是装置胜利。(然而我一向都不胜利)
5.要查阅更加具体的装置文档,请看http://www.phpmvc.net/docs/installIdx.php?doc=all
6.假如呈现Call to a member function on a non-object in \WEB-INF\classes\phpmvc\utils\BootUtils.php毛病,请先删除/WEB-INF/phpmvc-config.data文件内容,然先手动修正一下phpmvc-config.xml,好比加一个空格(只需求让php.MVC检测出该文件已修正过,需求从头生成phpmvc-config.data文件便可).

装置php.mvc的官方例子:(可选)

1.注重:本实例使用法式请求类库版本问php.MVC Beta 0.3.4或更高
2.下载使用法式: php.MVC Users Guide 101 example. (http://www.phpmvc.net/download/rel/phpmvc-guide-101.zip)
3.解紧缩到Web根目次,好比:C:\webapp\SalesReports
4.编纂Main.php文件,设置php.MVC类库途径及使用法式途径,以下:
$appServerRootDir = 'C:/webapp/phpmvc'; // no trailing slash
引号外面要修正成你的phpmvc的解压目次
$moduleRootDir = 'C:/webapp/SalesReports'; // no trailing slash
引号外面要修正成你的例子法式的解压目次
5.测试使用法式.会见地址http://localhost/SalesReports/Main.php?do=salesReport(这个我测试胜利了)

开辟一个本人的项目:

1.在web根目次下新建目次,如:study
2.将phpmvc解压目次下的Main.php和WEB-INF目次拷贝到study目次下,咱们要去除咱们不需求的文件
3.进入WEB-INF目次,删除除.htaccess,ModulePaths.php,phpmvc-config.xml,phpmvc-config_1_1.dtd,prepend.php之外的目次和文件
4.回到下层目次,修正Main.php文件(其实这个文件就是MVC的C,即掌握器),找到$moduleRootDir,修正为此项目标目次,好比:C:/webapp/study
5.还要修正$actionDispatcher,后来需求修正,如今不需求
6.在WEB-INF下新建classes目次,外面放ActionForm,Action和ActionDispatcher类(这些类可以参考下面说的谁人例子,这里就不说了).写好ActionDispatcher类后还要把它写到Main.php中的$actionDispatcher里去.
7.你可以在WEB-INF的下层目次写一些php文件用来做显示(也就是MVC的V,即视图),然后设置装备摆设WEB-INF下的phpmvc-config.xml(可以依据例子或检查官方网站的教程).
8.写好后在阅读器中输出:http://localhost/study/Main.php?do=XXX
个中XXX代表你在phpmvc-config.xml中设置装备摆设的一些action.看看你你的项目有无胜利.

利用phpmvc自带的ADODB毗连池:

1.下载ado库,你可以在http://www.phpe.net/class/106.shtml找到
2.将它解压到你的phpmvc解压目次下的WEB-INF/lib下,如许你的ado库能够在C:\webapp\phpmvc\WEB-INF\lib\adodb下
3.翻开C:\webapp\phpmvc\WEB-INF下的GlobalPaths.php,在function getGlobalPaths()中你可以看到很多$appDirs[],在这些$appDirs[]中添加一行:$appDirs[] = 'WEB-INF/lib/adodb';
即指定你的ado库目次
4.保留这个文件,翻开globalPrepend.php,添加:
include_once 'WEB-INF/lib/adodb/adodb.inc.php'; //ado的主文件
include_once 'WEB-INF/lib/adodb/drivers/adodb-mysqlt.inc.php';//mysql的ado驱动
include_once 'AdodbDataSource.php'; //phpmvc自带的ado接口文件
5.保留这个文件,翻开phpmvc-config.xml文件在<phpmvc-config>标签中到场:
<data-sources>
    <data-source key = "ADODB_MYSQL_DATA_SOURCE" type = "AdodbDataSource">
      <set-property property = "host"         value = "localhost"/>
      <set-property property = "databaseType" value = "mysql"/>
      <set-property property = "database"   value = "study"/>
      <set-property property = "username"   value = "root"/>
      <set-property property = "password"   value = "123456"/>
      <set-property property = "persistent"   value = "False"/>
    </data-source>
</data-sources>
请依据详细情形修正value中的值,个中databaseType谁人值需求看你是甚么数据库了,分歧数据库value也纷歧样,这里是mysql
6.找到WEB-INF\classes\phpmvc\dbcp目次下的AdodbDataSource.php,这个就是phpmvc自带的ado接口文件,然而此文件不克不及任务,你需求修正一下.
起首它的正文就没扩好,在文件的类界说class AdodbDataSource extends adodb_mysqlt下面那些正文没有好好的筐上,你需求加个/*
并且固然你在phpmvc-config.xml里设置了数据库信息但仿佛它并没有全体都能失掉,你需求在function open()中的$this->PConnect之前加上:
$this->databaseType = 'mysql'; //指定命据库是mysql
$this->database = 'study'; //指定命据库名是study,请依据详细情形自行更改
7.保留此文件.如今你可使用ado了,在你需求数据库毗连的中央,好比ActionForm和Action中.
办法是:
$dsKey = 'ADODB_MYSQL_DATA_SOURCE'; //这个就是你在phpmvc-config.xml中设定的key
$db =& $this->actionServer->getDataSource($dsKey); //失掉毗连
$sql = "SELECT * FROM user"; //sql语句
$recordSet =& $db->Execute($sql); //履行
if (!$recordSet)
{
exit($db->ErrorMsg());
}
$rowArray = $recordSet->FetchRow(); //失掉纪录
if (!$rowArray)
{
exit($db->ErrorMsg());
}
echo $rowArray['username']; //请将引号中的内容修正为你的字段名
echo $rowArray['password'];
$recordSet->Close();//封闭毗连
$db->Close();   //封闭毗连
8.如今来运转一下你的法式吧

国际化:

1.你可使用.properties文件(属性文件)来纪录一切需求显示的文字,如许在视图显示的时分就不需求硬编码文字了,如许咱们可使用多个.properties文件来显示列国的言语
2.在这个例子中,咱们写一个小的文件:my.properties,内容:
#井号是正文
logon.username.reqd=请输出一个正当的用户名 [{0}]
logon.password.reqd=请输出一个正当的暗码 [{0}]
先不必管[]中的器材,谁人咱们今后在讲
3.保留文件到WEB-INF/classes下,即放在和action类一同的中央
4.如今就能够利用他们了,在需求文件的中央写以下代码:
$config = 'my'; //这里写你的属性文件的名字,不需求写.properties,法式会主动找
$defaultLocale = new Locale(); //默许的时区
$pmr = new PropertyMessageResources(NULL,$config,False);
$pmr->setDefaultLocale($defaultLocale);
//入手下手输入文字
echo @$pmr->getMessage($defaultLocale, 'logon.username.reqd');
引号中的是你要输入的文字在属性文件里界说的属性名
如今就能够了,我在后面利用了@,是由于这个能够会呈现'notice'信息来损坏显示
假如你感觉下面的太罗嗦,可以将输入之前的语句写在一个php文件中好比叫global.php,然后每一个页都包括它
5.如今属性文件中的内容明显是在用户名和暗码输出毛病的时分输入的,那末咱们也但愿输入的时分显示谁人不正当的用户名和暗码,那末咱们只需在要显示的属性名前面加上[{0}].咱们也能够要显示多个信息,那末就写[{0}] [{1}],如许依此类推.
6.如今咱们需求在ActionForm中判别用户名和暗码的正当性,不正当就输入毛病信息.那末咱们怎样给[{0}]传递要显示的毛病用户名呢?follow me:
$args = array($username); //个中$username就是毛病的用户名,假如有多个,都可以放在这个数组中
//如今就能够输入了
echo @$pmr->getMessage($locale, 'logon.username.reqd', $args);
7.如今来做一个英文版的,将my.properties文件复制成my_en_US.properties,并将文件中的文字修正成英文的,保留
8.咱们方才做的谁人global.php文件,修正一下:
$defaultLocale = new Locale('en_US'); //改成美国时区,言语是英文
9.如今咱们再来看看输入的了局,是否是已酿成英文的了.假如你不晓得国度和言语的代号,好比:en_US,那末在phpmvc的解压目次下的/docs/Locale目次下可以找到
给你的建议是,有些最常用的语句是需要记住的 比如if for while这些、其他的一般语句你只要知道有这个函数或者有这个功能就可以了,当你用的时候你可以凭借记忆搜索就可以了。

第二个灵魂 发表于 2015-2-4 07:18:48

说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。

因胸联盟 发表于 2015-2-9 18:42:32

再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。

只想知道 发表于 2015-2-27 16:50:55

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

山那边是海 发表于 2015-3-8 17:23:23

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

老尸 发表于 2015-3-11 04:50:36

再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。

谁可相欹 发表于 2015-3-17 20:52:03

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

飘灵儿 发表于 2015-3-21 19:31:30

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

小妖女 发表于 2015-3-24 09:55:30

曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ;

深爱那片海 发表于 2015-4-1 03:10:56

如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,

小魔女 发表于 2015-4-3 01:12:07

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

简单生活 发表于 2015-4-15 10:31:42

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。

飘飘悠悠 发表于 2015-4-17 09:08:29

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

透明 发表于 2015-4-21 00:32:48

学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。

蒙在股里 发表于 2015-5-6 10:09:34

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。

灵魂腐蚀 发表于 2015-5-8 05:13:47

使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。

兰色精灵 发表于 2015-5-10 03:47:22

做为1门年轻的语言,php一直很努力。

海妖 发表于 2015-6-12 08:17:16

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

小女巫 发表于 2015-6-22 14:45:35

首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。

若相依 发表于 2015-6-23 20:41:00

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
页: [1] 2
查看完整版本: PHP教程之PHP.MVC的利用办法