PHP Web应用开发入门体验笔记

作者: 何朱必 分类: 开发笔记 发布时间: 2017-02-15 10:34

一、PHP web应用开发须知

1.入门要点

程序员三个阶段:码农(速成技能)->工程师(长期知识)->专家(研究论文)

编程三要素:声明变量(系统、全局、字段等)、数据算法(应用、比较、计算等) 、控制结构(变更、判断、循环等)

类三要素:封装、继承、多态

PHP web应用开发分两端:前端Html+Css+JavaScript静态页面或UI框架美工平面设计,后台PHP+MySQL动态网页设计或交互式数据处理

php知识要点:函数、数组、面向对象

php运行开发环境:lwamp集成运行环境Linux/Windows+Apache+MySQL+PHP;严格区别普通代码编辑器的PHP源代码错误检查调试和应用程序项目工程测试IDE集成开发环境ZendStudio/PhpStorm

php入门学习路线:自定义搭建PHP运行开发环境奠基石——〉肓打敲代码找感觉——〉GUI图形界面即见即所得设计开发项目掌握OOP面向对象编程思想——〉培训学习与实战开发分两个平台同步推进——〉仿站与原创相结合——〉MVC框架结构基础工程规范开发兼顾前端UI框架装修工程个性化开发

2.编程教你如何思考:20年自学编程的经历告诉了自己,自学编程是一个艰苦的过程,同时也是一个励志的过程,但编程是一门艺术,而不是纯技术。思想比代码重要。机器用来干活,人应该去思考。浓厚兴趣+正确方法=快速入门,e课程+ e课本+ pc测试+ pc项目开发= 入门+ 精通。编程是什么?编程就是用英语写一段文字或作一篇作文。要想快速入门,英语不能太差,定TA个小目标:快速阅读、快速实验、快速通读,一理通百理明,10天培养感觉、30天培养兴趣,100天训练编程思维和具备编程思想,200天整出个象样的Web Apps项目来

3.大道至简,精进极致:Web开发基于面向对象Oop思想,以大道至简的理念,用轻量级工具(IDE)开发高大上干货(App),炫酷大气而又平滑简约,但简约不简单。“界面友好、代码优雅、系统稳定”是MIS程序员永恒的追求,MIS的功能性、实用性、稳定性三者相互制约,如何拿捏分寸?全靠深入实践和适应业务需求,跟上时代的潮流

4.Web应用开发速成三要素:看教程(视频)、读程序(文档)、验代码(测试),反反复复,以完成开发项目工程demo演练为学习开发计划总进度,带着开发过程中的疑问来学习平台反复实验论证完成学习任务,不断完善项目工程规划图来细分学习与开发的各模块各阶段各要点按项目开发一、二级网络计划持续推进学习进度

5.Web应用开发过程:脚本编辑调试、静态网页仿站相关技巧、UI友好设计、视图美工模块化、动态网页原生代码编写或模板框架实现MVC或整站下载内容资料快捷生成源代码、非大型框架的函数式结构化编程、框架式项目工程开发。具体操作来说,前端静态处理可用Firefox扒下网页内容归类收集静态页面资料进行仿站编辑二次开发,也可以用DW+Ps完成美工设计或WebStorm或HBuilder→html5、css3、js 原生代码开发原创WebApp静态页面,后端动态开发设计用非图形界面Oop开发环境IDE工具ZendStudio或PhpStorm→编写WebApp开发项目源代码,快速搭建框架推荐图形界面可视化开发利器 Dreamweaver  CS6 所见即所得设计开发,可以是自建框架结构化编程完成项目,也可以借助TinkPHP框架或Smarty模板开发项目。特别要强调的是DW,中文名称 “梦想编织者”,是美国MACROMEDIA公司开发的集网页制作和管理网站于一身的所见即所得网页编辑器,DW是第一套针对专业网页设计师可视化美工网页开发工具,利用“拖拽”功能可以轻而易举地制作出静态或动态网页,完全可以作为Web前端开发的辅助工具也可以作为入门者通过GUI图形界面学习面向对象编程的好帮手。

6.PHP学习开发:尽量用面向对象Oop思路着手开发项目,先模块化封装类,再力争以通用、快捷调用类方法来提高开发效率,用大道至简的开发设计理念入手WebApp 开发。学习与开发按网页设计内容分为静态与动态两大类设计编程课程,静态网页学习内容基础部分课程可参考HTML+CSS+JS实战,动态网页学习内容基础部分课程参考PHP经典实例开发,项目开发实战参考PHP面向对象项目,大公司多人同时开发同一项目时,为了让前端美工开发代码简洁明了,快捷专注静态页面设计,可采用模板规范开发机制专业化规划项目开发工程,App模板开发参考Smarty全面掌握视频教程,PHP Web App框架开发理论知识学习英文版推荐Laravel框架,中文版可参考TinkPHP框架

7.选择合适的开发工具:工欲善其事,必先利其器。只有几兆字节的轻量级非图形界面Opp集成开发工具首选超级记事本Notepad++ v7.3.2(2.8MB);本土化国产开发工具首选HBuilder v7.6.5(3.67MB);国际化标准开具首选ZendStudio v13.5(320MB)或PHPstorm v2016.3.2(203MB);辅助开发工具首选Smarty v3.1.30(0.79MB )官方推荐模板、国产ThinkPHP v3.2.3(1.08MB)框架;博客、内容管理系统CMS首选WordPress v4.7.2(8.9MB);图形界面数据库管理系统首选官方推荐PhpMyadminv4.6.6(11MB);初学者入门GUI美工开发利器DW+PHP组合设计动态网站,开发浏览器首选Firefox火狐 。学习途径e课堂:北有慕课网/51CTO/南有腾讯课堂/职坐标,首选51CTO学习与海量资源下载

8.零基础快速入门方法技巧:充分发挥个性化本地PHP学习开发环境资源优势,同时创建学习与开发两个作业平台,学习平台(ZendStudio工作空间)d:\PhpStudy\www与开发平台(本人开发空间rk.com人可工作室)d:\PhpRE\www\rk相结合,课程学习与App项目开发两不误相结合,把学习平台的实验结果及时提供给项目工程开发使用和检验,反用App项目开发来论证和检验学习效果,及时调整学习方法和思路,提高学习效率,培养编程兴趣,用每天课程代码测试的成就感提精气神、促进快乐编程,用成功促进更大的成功

9.代码迁移的兼容性问题:2015年12月3日正式发布的PHP7.0.0向下兼容高达99.9%,但是,目前能稳定运行的应用程序及公开课上讲解的方法多半是老版本代码,Web学习与开发过程中,下载后欲直接迁移或复制粘贴在PHP7运行环境的非原生代码必须先通过最新版本的ZendStudio13.5或PhpStorm2016.3检测,测试成功后再用于开发新的应用程序。兼容性问题重点是数据库相关的PDO应用方面

10.轻松学习快乐编程:代码如诗,编程好比作诗。类的“驼峰命名法”与“驼峰命令法”就好比诗歌的押韵,Dreamweaver自动生成源代码就好比“魔术师”耍魔法。编程乐趣要有作诗的雅兴和灵感,享受创作的快乐。快速入门,不等于急于求成。程序员在编程大海中冲浪、体验编程乐趣,劳逸结合,乐山乐水,每天有份轻松愉快的好心情,才能创造出富有价值的WebApp精品

11.思路决定出路:遇到新问题,不纠结不死缠着浪费时间,停下来整理一下思路,或查查资料、充充电,利用外脑、换个办法就会迎刃而解,收到意外效果。每次开发前先用小便笺写下一两句简短思路,开始按思路逐条快速实验,行不通又退出来再理新思路、换另一种新方法,直到问题破解。山重水复疑无路,柳暗花明又一村。这方法叫“便笺思路”开发,小便笺能解决大问题

12.痛并快乐着:PHP是一门易学难精的语言,其实每一门编程语言又何尝不是如此呢?程序员少不了挑灯夜战,独自承受孤独与寂寞。学习与开发三分热度七分迷惑,每个程序员都有同样的困惑,要决心成为一个合格的PHPer,学习与开发就要有煎熬痛苦和寂寞的准备。俗话说“一生全凭自救自,无毅无志无功成”,入门时更是要有开发的信心和培养编程的乐趣,坚持自己,痛并快乐着

二、PHP web应用程序开发学习小结

1.数组Array()就是浴室柜号$key和柜子里衣物$value声明一组数据,声明数组就是造一组柜子。数组输出可用print_r()或打印函数命令var_dump();数组属于非自定义函数,与封装自定义函数共同实现PHP功能和方法

2.表单或Js将前端提交静态页面信息通过$_POST提交数据传递指定参数给后台php处理,$_GET获取传递数据php输出结果

3.非图形化UI界面面向对象学习先从封装类着手,从类的属性与应用上来认识Oop并将对象应用到WebApp开发中。OOPL ( Object- Oriented Programming Language ) 可以提高程序的封装性、复用性、可维护性,但仅仅是“可以” ,能不能真正实现这些优点,还取决于编程和设计人员应用程度。就PHP而言,其不是一门纯粹的面向对象的语言,但是仍然可以使用PHP写出好的面向对象风格的代码。类是对象的抽象组织,对象是类的具体存在。实例化了类,产生了一个个对象和个体的实例化过程,实际上也就是从抽象的类到具体的对象过程。一个类的设计需要能充分展示其最重要的属性和方法,并且能与其他事物相区分。只有类本身有意义,从抽象到具体的实例化才会有意义。类定义了一系列的属性(私有)和方法(公有),并提供了实际的操作细节,方法可以用来对属性进行加工,传递变量值给后续程序使用,并能让子类继承父类属性。对象含有类属性的具体值,这就是类的实例化。正是由于属性的不同,才能区分不同的对象。快速入门建议用Dreamweaver图形界面操作加深Oop的认识和理解

(1)类的定义

class 类名{}

类名的命名方式和变量的命名方式一样,第一个单词首字母要进行大写

(2)类的修饰符

public 公有的 任何位置都可以访问 默认的

protected 受保护的 类内子类可以访问

private 私有的 类内可以访问

(3)类内属性

类内定义的变量,要使用修饰符进行修饰,否则会报错误

(4)类内方法

类内定义的函数

(5)构造方法

用于给类进行初始化的抽象工作,让类具有一般性,一般用于给成员属性进行赋值,当类创建对象时会被自动调用,注意“__”两个下划线元素不要写错,类被实例化就好比“耍魔术”会有震撼的效果被见证奇迹

public function __construct([参数列表]){}

(6)析构方法

用于给类做些最后的处理工作,当类的对象不再使用时会自动调用些方法

public function __destruct() {}

(7)类的实例化

对象名 = new 类名([参数列表]);

参数用于给构造方法传递参数

(8)类内成员属性和方法的访问

类内:

$this->属性名[方法名];

$this代表当前对象

(9)类外引用

$对象名->属性名[方法名];

(10)static关键字 用于修改类内的成员属性或者静态方法,被此关键字修改的属性或者方法属性是整个类的,不属于任何一个对象

(11)类内访问

self::属性名[方法名];

(12)类外访问

类名::属性名[方法名];

4.web 管理信息系统开发核心机制:借助MVC架构开发MIS类似于表现在数据库的三种关系,再复杂的业务,表现在具体的前端、程序中,无外乎是四种动作,对数据库操作的四种动作:增(Add)、删(Delete)、改(Update)、查(Select)。更进一步的,四种动作其实就两种:读和写。查为读,增、删、改为写,读写动作的操作频繁度比例大约为十比一。

界面、页面、样式、脚本、程序、权限、数据库、整体架构、局部架构,自己想要的到底是什么样子的?发挥好高级语言封装、继承、多态的特性,使架构和程序更加的安全、易用、稳定、高扩展、高内聚、低耦合且功能更强大。在开发过程中,应该把自己遇到的暂时不好解决的问题及一闪而过的项目灵感等进行记录,然后在后面的修改扩展中或者是下一个项目的开发中,吸收优秀的处理经验、竭力避免已经出现过的问题。只有通过这样的反复积累,自己在开发细节上的处理才会日趋完善。

PHP Web开发满足移动办公设备需要,在琳琅满目的Apps应用中,相对C/S架构桌面应用领域而言,B/S架构Web应用领域更潮更为实用,已成为开发主流。

 

5.经典PhpStorm IDE开发PHPWeb MIS流程(前端UI框架原生开发模式):

基本思路:优化扩展PHP功能应用,在PHP目录下全局安装composer phar依赖包,可通过composer install/update直接在项目目录下安装更新whoops容错处理技术、Medoo数据库框架、PHPExcel类库、Twig模板引擎等第三方应用。通过触发器init.php传递自定义常量和变量解决MIS前端UI框架内页联动响应问题等一系列开发疑难杂症……

方法步骤:

全局安装php依赖包composer->使用comporser创建项目架构->PhpStorm本地开发

加载公共函数①+……

加载composer②+③+④+⑤

编程调试触发器init.php集成①+②

M层引用③+④

V层引用H-ui或Layui前端框架静态页及类库

C层引用⑤

①p($var)调试方法

②whoops捕获出错信息处理方法

③引用Medoo数据库框架

require ‘vendor/autoload.php’;

// 初始化配置

$database = new medoo([    ‘database_type’ => ‘mysql’,    ‘database_name’ => ‘name’,    ‘server’ => ‘localhost’,    ‘username’ => ‘your_username’,    ‘password’ => ‘your_password’,    ‘charset’ => ‘utf8’]);

④扩展PHPExcel类库功能

用composer安装或更新PHPExcel,灵活使用PHP~MySQL~Excel完成MIS数据转换、导入、导出、查询、图表、打印等业务需求任务

⑤引用Twig模板

require_once ‘vendor/autoload.php’;  $loader = new Twig_Loader_Filesystem(‘/path/to/templates’);  $twig = new Twig_Environment($loader, array(      ‘cache’ => ‘/path/to/compilation_cache’,  ));  echo $twig->render(‘index.html’, array(‘name’ => ‘Fabien’));

边想边试边调函数式结构化编程,基于H-ui或Layui前端框架开发,H5高大上UI及经典模块化编程

在项目上线发布投入应用时,③+④可独立于composer存放在项目核心子目录中直接引用

⑥项目开发核心内容

先选择部署好前端UI框架后,再按需创建相应的数据库,最后剩下来要干的活就是“五步法”轻松搞定整个MIS开发工作

第一步:信息采集入库(emp.xls等模板)

第二步:日常业务带表头标题的普通电子表导出(默认xl5便于转换成dbf)实现无纸化作业

第三步:直接用PHPExcel导出图形报表提供查询使用或无纸化报表传递

第四步:按MIS实用业务需求取舍前端UI框架菜单项和内页,并美化或优化框架操作界面,后台由Medoo完成M层的数据库管理,对业务信息增删改查及V层的UI操作,实现业务逻辑与视图关联,特别是要充分利用弹出框或弹出层解决业务操作流程引导或程序运行状态提示,确保用户操作界面友好、实用、易用

第五步:通过第三方厂商类库、插件优化系统,提升系统性能和稳定性

⑦开发完毕,上线测试通过后用composer发布更新升级Apps到应用商店

* 发布自己的Package

第一步:登陆github,创建项目

第二步:终端git clone 项目地址

第三步:进入项目目录,创建composer.json文件:执行命令composer init即可

第四步:根据提示填写完毕配置文件composer.json

* package name /

* description

* author

* minimum stability

* package type

* license

第五步命令:git add .

第六步命令:git commit -m”更改的描述”

第七步命令:git push

第八步:发布到packaglist.org,登陆自己的id

第九步:点击右上角submit,然后粘贴github连接后,再点击check

第十步:添加自动更新webhook

到 github项目,点击settings

点击左边导航webhooks & services

点击右边的add services

搜索package

填写user token,token可以再packagist得profile找到

粘贴token,然后addservice

然后点击生成出来的package出现画面

点击test service,出现ok表示成功

备注:绑定完成后,当你git提交更新后就会同步到package

后台模板敏捷框架体验

体验地址:http://learun.cn:8090/

用户名:System 密码:0000

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

120条评论
  • Amparo

    2019年7月24日 下午5:24

    Please let me know if you’re looking for a article writer for
    your blog. You have some really great articles and I think I
    would be a good asset. If you ever want to take some
    of the load off, I’d love to write some articles for your blog in exchange for a link back
    to mine. Please blast me an email if interested.
    Thanks!

  • Jasmine

    2019年7月24日 下午12:31

    Simply desire to say your article is as astonishing.

    The clearness in your publish is just spectacular and i can think you are an expert on this subject.
    Fine with your permission let me to grasp your RSS feed to keep up
    to date with imminent post. Thank you 1,000,
    000 and please continue the rewarding work.

  • Fran

    2019年7月24日 上午9:27

    Thank you for the auspicious writeup. It in fact was a amusement account it.
    Look advanced to more added agreeable from you! However, how can we communicate?

  • Cassie

    2019年7月24日 上午4:34

    These are in fact wonderful ideas in concerning blogging.
    You have touched some pleasant things here. Any way keep up wrinting.

  • Elvia

    2019年7月24日 上午2:38

    Very good blog! Do you have any hints for aspiring writers?
    I’m planning to start my own website soon but I’m a little
    lost on everything. Would you advise starting with a free platform like WordPress or go for a paid option? There are so many choices out there that I’m totally overwhelmed ..
    Any recommendations? Thanks a lot!

  • Brianne

    2019年7月24日 上午2:10

    We’re a group of volunteers and starting a new scheme in our community.
    Your web site provided us with valuable information to work on. You’ve done a formidable job
    and our whole community will be grateful to you.

  • Anh

    2019年7月23日 下午9:39

    Hello mates, good paragraph and nice arguments
    commented at this place, I am really enjoying by these.

  • Pablo

    2019年7月23日 下午4:09

    Hi to all, the contents present at this web page are really remarkable for people knowledge, well, keep up the nice
    work fellows.

  • Lloyd

    2019年7月23日 上午11:44

    certainly like your website but you have to take a look at the spelling on quite a few of your posts.
    Several of them are rife with spelling issues and I to find it
    very troublesome to tell the truth then again I will
    definitely come back again.

  • Armand

    2019年7月23日 上午7:36

    magnificent issues altogether, you simply received a emblem new reader.
    What might you recommend in regards to your submit that you
    simply made a few days ago? Any certain?

  • Hortense

    2019年7月23日 上午7:32

    We stumbled over here different web address and thought I may as well
    check things out. I like what I see so i am just following you.
    Look forward to going over your web page for a second time.

  • Ida

    2019年7月23日 上午3:56

    Asking questions are really fastidious thing if you are not understanding anything fully,
    but this paragraph presents fastidious understanding
    yet.

  • Hattie

    2019年7月23日 上午3:53

    Hi there colleagues, its great paragraph about educationand fully defined,
    keep it up all the time.

  • Uwe

    2019年7月23日 上午12:39

    If some one needs expert view about blogging then i propose him/her to
    visit this web site, Keep up the good job.

  • Jere

    2019年7月23日 上午12:39

    Magnificent website. Lots of useful information here.
    I am sending it to several friends ans additionally
    sharing in delicious. And naturally, thank you
    in your effort!

  • Rodger

    2019年7月22日 下午7:19

    No matter if some one searches for his essential thing, so he/she
    wishes to be available that in detail, so that thing is maintained over here.

  • Efren

    2019年7月22日 下午6:32

    I think this is one of the most vital information for me.
    And i’m glad reading your article. But wanna remark on few general things, The
    site style is ideal, the articles is really great : D. Good job, cheers

  • Thad

    2019年7月22日 下午4:05

    Hmm is anyone else experiencing problems with the images on this blog loading?
    I’m trying to find out if its a problem on my end or if it’s the blog.
    Any feed-back would be greatly appreciated.

  • Sung

    2019年7月22日 下午2:09

    Hello! Do you know if they make any plugins to protect against hackers?

    I’m kinda paranoid about losing everything I’ve worked hard
    on. Any suggestions?

  • Damon

    2019年7月22日 下午2:02

    Wow! After all I got a website from where I be able to actually obtain helpful information concerning my
    study and knowledge.

发表评论

电子邮件地址不会被公开。