php项目

项目立项时,产品经理该了解和注意的事

项目立项时,产品经理该了解和注意的事。还有关于项目开发、开发任务评估、技术选型,技术框架等常识。

1. 产品经理和包工头

小奈:怎么了解开发实现功能的方式和难度?

大仁:上次不是写了这篇,产品经理如何与开发沟通?

小奈:怎么准确分配需求给各个端的开发?

大仁:好吧,要了解的那么细,那我就深入讲解下。

2. 项目:打地基+盖房子

大仁:如果你奶奶问你,产品经理是做什么?小奈:额,就是负责产品设计、管理、协同开发、市场,推进项目落地的。

大仁:错,如果项目开发是盖房子,那么产品经理就是建筑设计师,项目经理就是包工头,开发就是水泥工。

和盖房子一样,最重要的是打地基,地基决定了房子的高度,打地基就是技术架构选型,例如淘宝前期是php,后期由于业务发展,数据库瓶颈,换成Java。

项目一般分为前后端,无论是什么前端项目,都需要后端支持,正常的开发人员配备,也是两个后端对四个前端(web、pc、Android、ios)对4个产品。

3. 敏捷开发-小步快跑

项目开发模式

瀑布开发:传统的项目型软件开发,流程、周期较长,常见于外包团队;敏捷开发:互联网的产品迭代,每周一个小迭代,mvp小步快跑,常见于互联网创业项目。

小奈:瀑布开发,什么鬼来的?还是不懂啊。

大仁:假如说项目开发,是盖房子的话,那么数据库设计、架构搭建,就是打地基,地基不打,如何盖房子?

大仁:瀑布开发就是,给包工头,包工头按照设计图,盖了1年房子后,你终于去看盖好的房子了,一看不是自己想要的,又叫包工头,又开始项目二期;

敏捷开发,就是你要求挺多的、而且没有最终确定的,然后包工头,快速打了个地基,你每周过去看房子,盖得怎么样了,这样子,盖出来的房子,可以让你比较满意;

4. 项目立项-产品篇

项目立项时,产品经理要做些什么呢?

大公司产品和项目经理分开;小公司产品兼任项目管理。

产品和项目是有差别的,产品无边界(版本管),项目有边界(可拆解成固定的开发任务、有验收标准)。

产品经理决定做什么,在立项时(第一个版本),需求分析基本完成,不会有大的改动,否则项目经理砍死你。兼任项目管理,要有任务开发时间表,一般用project/jira/excel来进行管理。

5. 开发任务如何量化?

大仁:好问题,其实开发的工作,是可以量化,标准化的,有个外包网站,它里面有个估价的功能,估价会按照标准(项目类型、模块分类、功能点)进行评估,最后得出一个报价。

报价/工作量

大概需要耗费21-29w左右,假如一个开发工资1w,那就是需要4个开发(2个后端+2个前端),大概6个月时间,那么如果你把这个人物和需求关联后,大概要做多久,应该可以衡量了吧。

6. 编程语言图鉴

随着互联网的发展,技术不断更新,日新月异,后端开发语言众多,php、java、c#、python、golang,百花齐放,百家争鸣。

Java: 20多年后端语言,sun公司的;c#:微软的后端开发语言,为了对抗Java;

python:谷歌的,随着人工智能一起变热;

golang:号称是后端里,最快的男人;

python和golang处于快速上升,Java常年霸主,坚如磐石;php、c#则随着历史,滚滚车轮,慢慢退出舞台。(个人观点,如有不对,请指正。)

PHP还是Java

小奈:PHP和Java的区别、优缺点,适用场景是什么?大仁:Java和php都是后端开发语言,Java适用于中大型企业级服务器开发,PHP适用于中小型服务器。

(1)上手难度比较

– php易学易懂,非技术的人,稍稍学习,可以上手,环境搭建用LAMP/WAMP一键安装包,常见开发工具,phpstorm。– Java则要求理解,Java语法和核心架构(jar包)以及JVM,环境配置也较为麻烦,常用开发工具eclipse或Intellj Idea;

(2)优劣势比较

Java的优势:从数学运算、数据库访问、技术架构上,优于php,所以对于跨平台大型,的企业应用系统,Java几乎已成为了唯一的选择,阿里就是全线Java系列,水平也是国际前沿;Java的劣势:Java架构、性能强大的背后,或者说代价,就是复杂性,尤其是在web框架,用Java开发一个web客服系统,可能需要9个月、看9本书,而php可能只需要2个月,3本书;php的优势:php吸收了Java、c和perl的有点,专注于互联网web领域,很适用于快速开发、维护,中小型网站;php的劣势:php项目后期,随着业务发展,对数据库要求高,php这方面支持以及架构均弱于Java,还有php程序员较少,不像Java程序员的生态那么强盛。

(3)适用阶段

创业初期:php,后端;中期:php、c++,cto+后端;

后期:java、c++,cto+架构师+后端。

其实,为什么多了个c++呢?

其实创业项目初期,它是一个小项目(后端+数据库),随着业务的发展,对数据库要求高了,再后来就对架构有要求了。所以一个大的系统,可能由多个子系统组成,子系统可以是不同的语言开发,只要遵循协议(soap/websevice/restful),就可以并行,形成架构了,所以中期就会需要DBA, 后期就要架构师了。

Java-多年的大哥

2000伊始,Java由于其优秀的语言特性,被大家推举为大哥。大哥宝座一坐23年了,期间php、ruby等试图挑战,其地位,但坚如磐石。

后端时代:

那时候,还没有前后端,只有后端。Java工程师写完后端逻辑,随便再把数据包在网页,传给浏览器,一人包办。这里不得不介绍下,汤姆猫web服务器。

web服务器有哪些:

Tomcat:汤姆猫;Weblogic:微波炉。

Java程序员每天的工作,就是把逻辑实现好,打包成一个war包,扔进web服务器,看下浏览器运行效果,正常的话,就下班回家了。

Java的编辑器

写过Java的应该,都用过eclipse,现在用Idea的比较多了貌似。Java的集成开发环境,就长这样了,其他语言的也差不多。左边是项目文件,会有主入口文件,其它的包、类文件,中间是某个文件,的代码编辑区。

类与对象Java是面向对象编程语言,类和对象,应该是编程初学,必知的。科普下类和对象,假如猫a、b是对象的话,那么类是什么?

类就是动物,类是抽象化的,对象才是具体的。

父类:动物public class Animal{}子类:猫public class Cat extend Animal{}对象:a猫Cat a = new Cat

展开
收起

基于thinkphp5.0.24框架的使用,创建一个简单项目

人人都是程序员,希望在零碎的阅读时间里,给您一些技术提升。

1 前往官网下载thinkphp框架

用于thinkphp框架是完全免费的,官网看起来有点乱,大家找到右边的最新下载,点击 “ThinkPHP5.0.24完整版”,下载thinkphp框架模板。

2 新建一个项目

找到apache目录,本文用的phpstudy,在web容器下新建一个文件夹thinkphpdemo,将刚才下载的框架解压,将解压后的文件复制到thinkphpdemo,如下图。

然后访问一下网址,localhost/thinkphpdemo/public/,出现一下界面,说明thinkphp部署成功。

至此,完成thinkphp框架的使用。如果想了解如何基于thinkphp创建控制器,请关注后续文章。

3 结束语

php是世界上最好的语言,谢谢阅读,欢迎关注。

展开
收起

新手:如何使用MAMP在本地开发PHP项目?

MAMP代表Macintosh,Apache,MySQL和PHP,它是一个允许安装本地服务器类型环境的应用程序。通过安装这个应用程序,我们可以在本地创建一个虚拟服务器作为我们的开发环境。

我们首先获得它,网上搜索直接下载即可。双击开始安装,按步骤完成安装。

MAMP和MAMP Pro功能都差不多,当然MAMP Pro是花钱买的,对于大多数情况,MAMP绰绰有,所以需要安装一个就得。

将MAMP文件夹拖到“Application”快捷方式上,安装将正在进行中。完成后,随意弹出光盘映像。打开“Applications”文件夹,找到新的MAMP目录,在里面你会找到MAMP.app,打开它,程序应立即启动并打开默认浏览器,指向起始页面。恭喜,你现在拥有本地服务器!

在主MAMP应用程序屏幕上,你会看到“Preferences(首先项)”按钮。随意点击它可以查看几个可用的选项。

从这里,你可以选择MAMP何时启动和停止服务器,如果选择不自动启动服务器,则每次打开应用程序时都需要明确告诉它们运行。也可以设置主页,默认为MAMP开始屏幕,让你网站快速访问phpMyAdmin。

在“端口”选项卡中,默认的Apache端口通常为8888,默认的MySQL端口为8889,我们可以不更改这些,因为它们不会干扰任何其他设置,也不需要每次启动和停止服务器时输入密码。以这种方式在URL中包含端口号;,所以访问时可以这样:localhost:8888/,但是为避免这种情况,可以将端口更改为常规Web服务器的操作:端口80和数据端口3306,所以URL简单地访问:localhost/,虽然这样方便我们访问地址,问题是在打开和关闭服务器时,很可能需要输入密码。

“PHP”选项卡允许选择在设置中运行的PHP版本,它将默认为php5.4,你也升级为PHP7,但是要了解php7最新功能,或者需要哪些扩展插件。

“Apache”选项卡是用于更改文档根目录,根部是MAMP存储和访问所有网站和目录的地方,默认情况下:/Applications/MAMP/htdocs,你也可以自己修改成你喜欢的地址文件夹。在MAMP应用程序窗口中,单击“首选项”,然后单击“Apache”修改。

到这里MAMP搭建环境就算完成,可以试一下开发项目了。

展开
收起

云计算运维人员参与php项目架构设计要明白这些知识点-薪享宏福

PHP之所以这么流行,离不开LNMP/LAMP(Linux+Nginx/Apache+PHP+MySQL),这个组合开发运维的效率很高,所有软件都是开源的,拿来即用。在项目的早期这个组合能够发挥很大的作用,时间久了整个团队已经习惯于这样一种组合,在架构上反而成了一种局限。

在这种架构中,Web服务器收到请求,PHP通过SQL语句增删查改数据,把复杂的逻辑丢给后面的数据库(SQL语句),PHP数组充当临时的数据结构,获取到数据后把结果和HTML元素拼装在一起展示给用户。这种做法是把PHP当作一门

胶水语言

来使用,在逻辑较为简单、性能要求不是那么高的时候,这是一个不错的方式。

但是随着项目越来越大,流量越来越大时,负载全都压给了数据库,性能问题就会出现了,PHP往往要等待数据库读写完成后才能继续执行,这时可能会认为是MySQL出现了性能瓶颈,进而认为是MySQl服务器不行,以为增加内存,更换更好的服务器就能解决这个问题。其实这是整个网站的架构出现了问题,是要重新考虑整个网站架构的时候了,运维要和研发一起讨论可能存在的性能瓶颈,找到解决方法,比如加缓存、静态化等。

解决之道:重新思考大型网站技术架构

网站架构不只是与PHP有关,而是要考虑全局的问题。目前互联网技术的趋势是分布式、缓存化(所谓的把内存当缓存用、把SSD当存储用、把磁盘当冷备用)、异构化、微服务化,对于架构和技术选型要有宽广的视野。

建议:

1、理解整个请求的生命周期及PHP的位置,PHP只是处理数据的一环,不能纯当胶水技术,而把逻辑都给了数据库;也不能完全依赖MySQL处理所有数据,在PHP层可适当地使用算法和适当的数据结构、缓存等技术来减轻数据库的压力。

2、对于实时性要求不是很高的页面应尽量静态化,以减少对PHP和MySQL的请求。

本文来源于网络,如有侵权请联系薪享宏福

展开
收起

你的PHP项目遇到性能问题了吗?带你走进PHP语言性能处理

你的项目中遇到性能问题了吗?遇到性能问题你是如何解决的呢?你的解决方式是否正确呢?下面就跟大家一起分享php项目的性能问题。

在讨论性能问题时,我们要明白,整个项目的性能问题不仅仅包含php这一块,比如还有数据库服务、缓存服务、文件系统等,因此php性能问题在整个项目中只占一部分,在优化系统性能时要搞清楚是在优化系统整体性能还是在优化PHP单方面的性能。

php语言级性能分析

php在什么情况下会遇到性能问题呢?

首先,PHP是一门编程语言,我们知道每一门编程语言都有自己的优势及擅长的领域,所以使用php做了它不擅长的事情会很大概率遇到性能问题。再者,编码者在开发时PHP语法使用不恰当,导致php运行慢。最后,就是我们无法预估的问题,没有明确解决思路的性能问题。今天我们主要介绍PHP语言级的性能问题。

1、PHP性能检测的工具:ab(apache benchmark)

ab是由apache提供的压力测试工具,安装Apache时会自动安装此插件。

使用ab工具: ab -n1000 -c100 https://www.test.com

-n表示请求数,后面跟数字,总共发起的请求数

-c表示并发数,后面跟数字,同一时刻的请求数

url最后跟要检测的目标地址

我们对百度进行一个检测,注意:对别的网站进行ab测试时,-n和-c后面的数字小点,不然会对目标网站造成一定的压力,然后人家发现你就把你给kill了:

ab压测结果ab压测结果

这里我们只关注两个数据:

(1)、Requests per second:每秒可处理的请求数,越大越好 。

(2)、Time per request:每个请求处理耗时数,越小越好。

这样我们在每次进行过性能优化后可以通过前后这两项数据的对比确定优化有没有效果。

2、PHP语言级性能优化

(1)、多使用PHP自身携带的功能处理逻辑

如:有一个10000个用户信息的二维数组$userInfoList,要把它转为一维数组,且以uid为键名,username为键值,看多很多人写的代码都是通过foreach循环来实现,实际上这个是可以用PHP自带的数组函数来搞定的:

一般代码:

<?php

$userMap = array();

foreach ($userInfoList as $val) {

$userMap[$val['uid']] = $val['username'];

}

var_dump($userMap);

php数组函数:

<?php

$userMap = array_column($userInfoList, 'username', 'uid');

var_dump($userMap);

这个函数就能实现这种功能,代码简单又容易理解,运行速度还比自己包装的快。

函数参数:array_column($array, $column, [$index_key]);

(2)、php内置函数的也存在快与慢的差异

比如:查找一个index是否存在于数组$array的key中,大家都能想到使用array_key_exists($index, $array),当然有的同学也想到了使用isset($array[$index])这个函数。看下面代码:

<?php

//每项要多测几次,用平均值做比较

$array = rang(2000, 10000);

$start = time();

for ($i = 0; $i < 20000; $i ++) {

isset($array[$i]); //测完这个注释掉

//array_key_exists($i, $array);

}

$end = time();

$time = $end - $start;

echo $time;

没错,这两个函数都能实现相同的功能,然而在经过测算后发现,isset()函数的速度要快于array_key_exists()函数。所以大家平时使用内置函数时,要思考一下什么时候该使用哪个同类型的函数。

建议phper们多了解些内置函数的实现思路及函数计算的时间复杂度,大概知道了运算的时间复杂度的量级,那么在使用的时候就能够选择合适的函数。

(3)、总结几个比较常见的注意点

减少PHP魔法函数的使用,也叫魔术方法最好禁用掉PHP错误抑制符@,虽然很方便,但是最好别用减少在循环体内做大量运算使用带引号字符串做键值好了,今天的分享就到这里,如果喜欢我的内容,欢迎转发~~留言~~

谢谢~~

展开
收起

PHP做不了大型项目!是程序员的技术不行,还是天生的缺陷?

常听朋友说,PHP是世界上最好的语言,没有之一。听我心潮澎湃,差点就去学PHP(其实我学了,只是太笨,没学会)。作为世界上最好的语言,当然是有它的理由的,我感觉PHP最好的一点,就是代码修改之后无需编译就能直接运行,这是它最方便最实用的长处,但同时也是它致命的缺陷,就是代码容易被抄袭,因为你打开PHP文件,代码就直接在那摆着,你随便改,随便抄。

与JAVA和C#这些编译型语言相比,PHP的修改之后无需编译直接就可以执行的优点,无疑给开发者带来极大的便利。编译型语言的程序员在开发阶段,每次修改完代码之后要先编译,然后调试运行,开发效率上比PHP程序员要慢的多。

另外,编译型语言修改代码需要有开发环境,PHP就不一样了,用Windows自带的文本编辑工具就能修改(当然不提倡这样做,除非紧急情况)。有同学问了,你把PHP说的这么好,为啥没有见到用PHP开发大型项目?大项目是有的,互联网巨头百度就是用的PHP。那除了百度呢,这个,那个,嗯,让我想想。

的确,现在的大型互联网公司,后台程序大都用的JAVA这样的编译型语言,那么和JAVA相比,PHP到底差在哪里了?

各类语言漏洞占比

首先,PHP是脚本语言,无需编译,开发效率高。但这既是它的优点,也是它的缺点。缺点就是它的运行效率比编译型编译要慢。开发效率和执行效率成反比,这是软件开发一条亘古不变的定理。

其次,PHP是弱类型语言,在隐式类型转换的时候,容易造成数据转换出错,埋下隐蔽的漏洞。这个缺点也是相当严重,轻则后台被非法登录,重则服务器会被拿下。这是程序员在敲代码时需要注意的地方,尤其是在权限判断的关键地方。

还有就是PHP的门槛低,新手入门快。如果从别的语言转到PHP,那就更快了。但正是这低门槛造就了PHP的开发者良莠不齐,直接导致PHP项目的安全性大打折扣。当然PHP的安全问题,是这门语言的天生缺陷,不能全说是程序员的错。

不得不说,PHP语言今日的广泛应用是其它后台语言无法比拟的,而如今像Python,NodeJS这类的后起之秀,也在一点一点蚕食PHP的市场。脚本语言以其独特的魅力征服了程序员,为啥程序员喜欢脚本语言?答:开发效率高。问:开发效率高有什么好处?答:可以早下班。这句话深深触动了程序员的内心。

展开
收起

PHP互联网项目开发的锻炼心得

经过6年的锻炼了,我的php开发水平逐步提高,代码质量有了飞跃。总结下这几年的经验教训,总是印象深刻。在企业里开发的这些事儿,需求不断变化,方案该来改去,写好的代码眼看着无用武之地!好在几个项目下来,对php项目管理、人员分配、项目进程安排等方面,都是有收货的。

php开发速度快

就开发语言来说,PHP是最好的用来做网页的程序,没有之一。简单快捷就是它主打的特征,现在php7.1以上,性能提升非常快,同时LNMP,LAMP这样的搭配,在其他语言里面是没有的。

之前公司项目采用JAVAEE,开发速度慢的劣势始终伴随,一个小小的项目可以折腾6个多月,而且运行速度始终上不来。

改成PHP开发大大提高了项目速度,同时部署的灵活性和稳定性有进一步提高。同时有足够的时间和精力应付,不懂程序开发,一边要这这样做,另一边那样做的老板们。

php7进一步优化速度

然而新程序开发的过程都不是一帆风顺的,其中推倒重来一遍又一遍,这些痛苦的事情不断浮现,路子走通了,大家都开心了,然而背后的这些记忆不能磨灭。

总结下经验:

项目开发不能盲目开工,公司的需求会变化的,开发前一定要吃透需求,总结合并一些相似的功能不明确的功能,不能忙不开发,宁可简单,不能评自己的想法深入功能不贪多,做好调理,先简单再深入哪怕功能少,也要看到成效,给公司树立信心,增加老板的成就感先总结这些吧,项目管理也是一门学问,在平时的实战中不断积累经验也是很重要的!

展开
收起

工欲善其事必先利其器,盘点Github上那些优秀的PHP项目

工欲善其事必先利其器,作为一个开发者,了解并使用前人造好的轮子能让我们的开发事半功倍,在这里老宅整理了几个Github上有趣的php项目与大家分享。

swoole

Github仓库名称:swoole/swoole-src

swoole

Swoole是一个面向生产环境的 PHP 异步网络通信引擎,可以广泛应用于互联网、云计算、企业软件、移动通信、车联网、物联网(IOT)、网络游戏、智能家居等领域。 让 PHP 开发人员可以编写高性能的异步并发 TCP、UDP、WebSocket 、HTTP,Unix Socket服务。swoole实现了php的异步、多线程,正如官方所说“重新定义PHP”,也许这才是swool的精髓吧。

对于phper来说,以前做web开发主要是写业务逻辑,只需要php的知识即可胜任,使用swool编程则需要补齐多线程编程的知识、进程间通信的知识、网络协议TCP/UDP的知识,否则很多地方理解起来会有难度。

swoole生态也日趋完善,各类基于swoole的衍生开源项目层出不穷,在框架、工具、分布式、通信协议方面都有建树。

非常优秀的一个即时通讯框架,我自己非常喜欢。

Piplin

Github仓库名称:Piplin/Piplin

极简易构建,零宕机部署(官网原话)。piplin(灵感来自于"pipeline")是一款免费、开源的持续集成与部署系统,适用于软件的自动化构建、测试和部署相关的各种应用场景。其前身是Fixhub,一款免费开源的php项目自动化部署系统,定位为持续集成系统。现已支持PHP、Python、JAVA、Ruby等项目的构建、测试与发布,可与Gitlab、Github、Gogs、Gitee(Oschina)等代码托管平台进行集成。

yaf

Github仓库名称:laruence/yaf

Yaf,全称 Yet Another Framework,是一个C语言编写的PHP框架,Yaf以PHP扩展形式开发的PHP开发框架, 相比于其他的PHP框架, 它更快,更轻便. 它提供了Bootstrap, 路由, 分发, 视图, 插件, 是一个全功能的PHP框架。

yaf作者是php项目核心组成员,zend顾问,php7的主要开发者,在新浪开了微博,大家可以围观下,网名:Laruence。

zephir

Github仓库名称:phalcon/zephir

zephir

Zephir 是一种中间语言,以接近 PHP 的语法来编写代码,然后转换编译时 zephir 会被翻译成 C 语言然后编译成 php 扩展,简化了PHP 扩展的创建和可维护性,降低了php扩展的开发门槛。利用编译来提高性能和资源消耗,又不需要关注内存管理等复杂操作。

Zephir丰富了php软件项目的开发方式,从运行效率来说,php扩展的运行速度必然是高于php源码的。

phalcon

Github仓库名称:phalcon/cphalcon

phalcon是一个以 C 扩展交付的全堆栈 php 开发框架,其革命性的架构,使Phalcon成为有史以来最快的 php 开发框架(官网原话)。

其独特的架构允许框架总是内存常驻,调用phalcon提供的功能,没有文件读取的开销,效率很高,其他方面可以像传统的PHP开发框架那样使用。

workerman

Github仓库名称:walkor/Workerman

worker'man

Workerman是一款开源高性能异步PHP socket即时通讯框架。支持高并发,支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议。拥有异步Mysql、异步Redis、异步Http、MQTT物联网客户端、异步消息队列等众多高性能组件。

workerman的核心功能类似swoole,不过是前者纯PHP实现的,相对于swoole,workerman底层功能比swoole少一些,但相对简单,学习门槛低一些,但是workerman应用层面的功能比swoole丰富。

以上只是Github中php优秀项目的一部分,如果你用过其他好的开源项目,欢迎在留言与我们交流分享。顺便点一波关注。

展开
收起

PHP开源项目那么多,你们都喜欢哪几个?

PHP是目前所有编程语言开源项目最多编程,PHP本身开放源代码,所有的PHP源代码都可以得到。

我们热爱PHP还有其他特点,比如PHP本身免费且是开源代码,目前常见的平台都可以运行,有UNIX、LINUX、WINDOWS、Mac OS、Android等平台,更重要是PHP也是支持面向对象,完全可以用来开发大型商业程序,所以目前有很多PHP开源项目提高开发者使用。

下面介绍几个我们最常用且比较好用的PHP开源项目。

WordPress

WordPress是一个博客开源项目,本身插件众多且易于扩充,对于不太熟练PHP开发者来说是很重要的,不用你懂太多PHP,只要你根据提示安装就可以,但是如果要二次开发它最好需要一个熟练的PHP工程师才能更好的二次开发。目前WordPress在外国使用比较常见,国外还有专门职位是WordPress开发工程师,但是中国招聘这个职位很少,毕竟国人使用频率较低。

ECSHOP

ECSHOP是一个用PHP开发的商城网站,数据库是MySQL,其实我们不用想都知道,只要PHP开发的网站基本都是MySQL数据库。ECSHOP网店是一个完整购物系统,基本我们想要的功能都可以实现。

ThinkPHP

ThinkPHP是一个快速、简单的面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,并且永久免费使用,目前已升级5.版本到以上,这个框架是国人自己开发,是推荐PHP初学者选择第一个框架,学习资料十全。我们见过ThinkPHP开发项目比较好的商城网站是tpshop,和ECSHOP差不多都是商城开源网站。

DedeCms

DedeCms一个内容管理系统,包括发布、编辑、管理等网站管理系统,同样也使用php+mysql开发,只要完成搭建PHP开发环境就可以一键安装,不用任何其他操作,DedeCms是中国最受欢迎的Cms系统之一。

discuz!

discuz!一个通用的论坛社区系统,不仅功能强大,在网站访问速度方面,discuz!值得肯定的一个php开源系统。

我们常用的PHP开源项目还有CakePHP,Drupal等,最后希望各位在使用过程中尊重开发者源码,众多PHP开源项目中你们都喜欢哪几个?

展开
收起

PHP项目搭建流程

1.项目结构说明

config: 数据库配置和邮件服务器配置需要统一管理,放在config文件夹里

frontend: 前台 home

backend: 后台 admin

2.搭建过程

(1).编码规范说明---非常重要

(2).定义核心启动类---让项目run起来

1. 加载配置: 在使用前准备好配置(预加载),方便程序使用

2. 定义常量: 通过路径常量可以定位到任何的项目内的资源

定义run方法:

framework/core/Application.php

getcwd(): 获取当前工作目录的函数

完成init方法编写:

framework/core/Application.php

注册自动加载:

framework/core/Application.php

完成路由分发

controller=Product&action=index

class_exists: 测试一个类是否存在,第一个参数是类名, 第二个参数是在检查是否调用自动加载函数,默认为true。

实现控制器空间分割

framework/core/Application.php

(3).加载视图

加载html页面,渲染输入。

通过include函数加载视图文件:

定位问题使用chrome的开发工具, f12打开, 火狐使用firebug

(4).定义核心控制器

header(‘Location:http地址’)

(5).载入第三方代码类和辅助函数

载入辅助函数类的编写:

载入第三方代码类

(6).载入数据库模型

模型用来处理业务逻辑的,业务逻辑通过数据库结构体现。

增:insert()

删:delete()

改: update()

查: selectByPk

统计总行数: total()

获取第几页的分页数据: pageRows, 主要在处理数据分页的时候用到

框架执行的上层流程图:

控制器和模型流程介绍:

展开
收起