仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1879|回复: 20
打印 上一主题 下一主题

[学习教程] PHP编程:[转一篇对照老的文章]编写本人的php扩大...

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:30:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
参加PHP开发学习,或许只是一次偶然的想法吧!只是想在走向社会之前体验、学习在一个公司或者说是项目团队之中如何去更有效的沟通、交流、共同合作,还有就是为毕业实习找工作增加伐码。对照|函数   作者: 飘在四方
自己还没测试过,有乐趣的可以测试下

Yorgo Sun 2002/01/22



php法式写的工夫长了,天然对他所供应的功效洞若观火,他所供应的一大堆功效,真是感觉很好用,但有时分会发明php也短少一些功效,本人老是会发生为php添加一些自界说的功效的设法。一朝一夕,终究明天憋不住了,入手下手下手研讨若何添加。



下载一个php的源代码包,这里利用的是php 4.0.5版,解压后会看到php的根目次下会有README.EXT_SKEL如许一个文件,翻开具体浏览了一下,发明了一个十分好用的东西,这个东西可以帮你构建一个空的php扩大,然后你向外面添加响应的代码就能够完成你本人的功效扩大了。上面咱们就来引见若何利用这个东西。



起首转移你的目次到php的目次下的ext目次,假如你只需求一个根基的扩大框架的话,履行上面的号令:

./ext_skel --extname=module_name

module_name是你本人可以选择的扩大模块的名字,例如我选择的my_module。履行东西后会主动在ext目次下创立你选择的module_name名字的目次,外面已生成了相干的代码,这些代码中只需求调剂config.m4文件中的三行正文就能够正常的编译带这个自界说扩大模块的php了。在php的根目次履行以下操作就能够失掉。

./buildconf

./configure --enable-module_name

make



上面我来演示创立my_module扩大框架的全进程,为了更无效果,咱们来完成一个php的扩大功效,在php中挪用这个功效可以在web页面中显示hello world这个经典单词。

在php目次下的ext目次中,履行上面的号令

./ext_skel --extname=my_module

失掉反应了局:

Creating directory my_module

Creating basic files: config.m4 Makefile.in .cvsignore my_module.c php_my_module.h tests/001.phpt my_module.php [done].



To use your new extension, you will have to execute the following steps:

1. $ cd ..

2. $ vi ext/my_module/config.m4

3. $ ./buildconf

4. $ ./configure --[with|enable]-my_module

5. $ make

6. $ ./php -f ext/my_module/my_module.php

7. $ vi ext/my_module/my_module.c

8. $ make



Repeat steps 3-6 until you are satisfied with ext/my_module/config.m4 and

step 6 confirms that your module is compiled into PHP. Then, start writing

code and repeat the last two steps as often as necessary.



假如你能看懂下面的器材,那就照着去做。假如不是太分明的话,依照我上面的提醒来做也能够。

Cd my_module

起首进入my_module目次

vi config.m4

利用文本编纂器翻开config.m4文件,文件内容大致以下:

dnl $Id$

dnl config.m4 for extension my_module

dnl don't forget to call PHP_EXTENSION(my_module)



dnl Comments in this file start with the string 'dnl'.

dnl Remove where necessary. This file will not work

dnl without editing.



dnl If your extension references something external, use with:



dnl PHP_ARG_WITH(my_module, for my_module support,

dnl Make sure that the comment is aligned:

dnl [ --with-my_module Include my_module support])



dnl Otherwise use enable:



dnl PHP_ARG_ENABLE(my_module, whether to enable my_module support,

dnl Make sure that the comment is aligned:

dnl [ --enable-my_module Enable my_module support])



if test "$PHP_MY_MODULE" != "no"; then

dnl If you will not be testing anything external, like existence of

dnl headers, libraries or functions in them, just uncomment the

dnl following line and you are ready to go.

dnl Write more examples of tests here...

PHP_EXTENSION(my_module, $ext_shared)

Fi



依据你本人的选择将

dnl PHP_ARG_WITH(my_module, for my_module support,

dnl Make sure that the comment is aligned:

dnl [ --with-my_module Include my_module support])

修正成

PHP_ARG_WITH(my_module, for my_module support,

Make sure that the comment is aligned:

[ --with-my_module Include my_module support])

或将

dnl PHP_ARG_ENABLE(my_module, whether to enable my_module support,

dnl Make sure that the comment is aligned:

dnl [ --enable-my_module Enable my_module support])

修正成

PHP_ARG_ENABLE(my_module, whether to enable my_module support,

Make sure that the comment is aligned:

[ --enable-my_module Enable my_module support])



普通我会选择后者,然后保留加入。假如你对vi文本编纂器的操作有坚苦的话,请参考响应的申明文章,这里就不再具体描写了。

Vi my_module.c

将文件个中的以下代码停止修正

/* Every user visible function must have an entry in my_module_functions[].

*/

function_entry my_module_functions[] = {

PHP_FE(say_hello, NULL) /*
深爱那片海 该用户已被删除
沙发
发表于 2015-2-4 13:15:18 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
愤怒的大鸟 该用户已被删除
板凳
发表于 2015-2-9 14:42:20 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
兰色精灵 该用户已被删除
地板
发表于 2015-2-13 15:52:46 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
因胸联盟 该用户已被删除
5#
发表于 2015-2-15 03:48:03 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
第二个灵魂 该用户已被删除
6#
发表于 2015-2-27 09:05:26 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
若天明 该用户已被删除
7#
发表于 2015-3-8 23:56:22 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
蒙在股里 该用户已被删除
8#
发表于 2015-3-12 23:57:38 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
只想知道 该用户已被删除
9#
发表于 2015-3-17 12:34:33 | 只看该作者
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
再见西城 该用户已被删除
10#
发表于 2015-3-24 10:04:37 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
小妖女 该用户已被删除
11#
发表于 2015-3-29 07:42:52 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
小魔女 该用户已被删除
12#
发表于 2015-4-6 05:51:11 | 只看该作者
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
透明 该用户已被删除
13#
发表于 2015-4-11 12:08:42 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
谁可相欹 该用户已被删除
14#
发表于 2015-4-19 12:27:28 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
柔情似水 该用户已被删除
15#
发表于 2015-4-26 02:08:23 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
16#
发表于 2015-7-1 15:13:13 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
金色的骷髅 该用户已被删除
17#
发表于 2015-7-7 07:37:26 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
分手快乐 该用户已被删除
18#
发表于 2015-7-8 22:24:00 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
爱飞 该用户已被删除
19#
发表于 2015-7-9 04:02:40 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
老尸 该用户已被删除
20#
发表于 2015-7-11 04:02:27 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 15:53

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表