A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

gz_phper

  • 黑马币:70

  • 帖子:41

  • 精华:0

白猫 发表于 2017-9-5 15:58
这个帖子太实用了,让我们了解到传智黑马学习是怎么样的, 赞,持续关注

这也是我们做这个的目的,希望不了解的人对我们有所了解,知道我们实际的情况;希望了解我们的人从另外一个维度来看自己~
回复 使用道具 举报
PHP的学习未必只是局限在PHP的世界中,很多其他的语言也值得我们去涉猎。今天冯淦(gan去声)同学就将研究易语言的过程和工具使用给大家做了个分享。 首先介绍的是关于易语言的历史:基于Google的开发安卓的应用程序语言,属于组件式编程,当然不幸的是挂掉了~

然后介绍了E4a作为易语言的继承开发环境

当然,空讲理论没有价值,需要真刀真枪才能“干掉敌人”,于是就有了环境的应用以及代码的书写规范



很有爱有木有?分析非常的清晰到位,虽然不是现场演示,但是透过用心做的图片一目了然有木有??!!!
然而这些都是花架子,真正厉害的在于已经能够用这个语言做出效果来了!瞬间偶像了~

别问我为什么只放了一张帅气的分享者~因为我不!会!上!传!视!频!
也别问我为什么不正起来~因为我!不!会!







IMG_3945[1].JPG (226.55 KB, 下载次数: 22)

IMG_3945[1].JPG
回复 使用道具 举报
今天主要内容是讲了PDO的相关知识,晚自习在解决学生问题的同时,也看到了一些共同的问题,在此就PDO的作业:封装PDO类进行一些简单的说明。其实也算是一种学习经验的分享。
1、为什么要封装PDO类?
PDO已经是一套成熟的面向对象的扩展,也已经解决了对于不同数据库的完美连接问题,为什么还要再次封装?是不是只是为了掌握面向对象封装的技巧?答案:不全是,练习固然是一部分,但是不是全部。PDO的确已经能够解决很多问题,但是事实上在使用PDO的时候,会发现PDO用起来还是不怎么省心的:
①PDO的初始化比较麻烦,每次都需要写很多代码,例如初始化条件等;
②PDO在执行代码的过程中,错误处理很糟糕,因为默认静默模式。

基于以上两点,我们有必要在面向对象的路上再深入一点,实现以下需求:
①尽可能使用面向对象编程思想来编写PHP代码;
②希望能够实现简单的new PDO;
③希望在执行SQL指令的时候,能够用异常的方式告知错误原因。

2、如何封装一个类?
类的封装是将数据和数据的操作捆绑在一起,形成对外界的隐蔽,但是又提供对外操作的接口。那么要制作一个类就应该遵循这些特征:
①数据:在类中用属性保存(名词:如姓名)
②方法:在类中以方法存在(动词:如吃饭)
③捆绑在一起:同属于一类的东西,放到一个类结构中(如人的眼睛、鼻子和头发,又如人会生火、直立行走等)
④对外界隐蔽:尽可能的增加类对成员的控制(private > protected > public),如果确定外部用不到的一定要private
⑤提供对外操作接口:public可以在类外访问,用户会用的,但是不确定会怎么用的(增删改查)

3、PDO类的二次封装需要怎么做?
这个就是基于封装PDO的目的来实现
①面向对象来实现:所以针对PDO的封装是基于类来实现;
②实例化类得到对象后,就完成了PDO连接初始化操作:实例化得到对象后,对象第一时间会自动调用的方法是构造方法,言外之意,在新封装的类内部要完成PDO连接认证操作
        1)连接是否需要条件?----------------------->属性保存条件
        2)连接条件是否需要外部改变?-------------->构造方法参数传递进来(如何传递?单个或者数组)
        3)是否允许外部不提供?--------------------->默认值使用
        4)如何连接?--------------------------------->可以直接在构造方法中new PDO也可以另起炉灶(理论上一个方法只做一件事情(越小越好))
③SQL执行错误检查
        1)什么方式报错?---------------------------->默认不报错(静默模式),使用异常模式(如何设置?)
        2)报哪些错?--------------------------------->错误编号,错误信息
        3)出错了还要不要继续执行?----------------->出错后终止代码继续向下执行
④对外接口提供:别人如何使用我们新封装的工具类
        1)允许实例化:公有化构造方法
        2)允许增删改查:理论上四个公共方法,但是事实上使用较多发现增删改对于系统而言都是写操作,做出的结果基本一致,可以归类;而查询通常分为查询一条记录和多条记录,执行逻辑(方法)不同,所以可以归类两个方法;
⑤优化代码
        1)找出公共代码,实现“瘦身”优化:重复执行的代码如果只有部分可控内容变化,那么可以进行代码的提取,形成公共代码(内部使用私有化)
        2)找出可能出错的地方,利用特殊方式来实现代码的容错性(PHP重载,数据验证等)

如果每次写一个类的时候,都去思考为什么要做?要做什么?以及要怎么做?最后怎么优化?这些问题的话,那么你写出来的类肯定是不冗余,而且是可以被别人拿来作为工具使用的。而且写多了之后,以后不单很好理解一些设计模式和编程思想,同时也能提升自己对于代码结构的控制和书写速度、书写质量。


点评

小马哥辛苦了 感谢无私分享 受益匪浅  发表于 2017-9-27 22:10
回复 使用道具 举报 1 0
gz_phper 发表于 2017-9-26 23:26
今天主要内容是讲了PDO的相关知识,晚自习在解决学生问题的同时,也看到了一些共同的问题,在此就PDO的作业 ...

应该做的~
回复 使用道具 举报
最近大家学习了模板技术Smarty,询问了很多同学,表示对其有一定了解,但是又不甚了解。其实这个是非常正常的现象,知识在没有真正运用之前总是觉得对其一知半解,只有到运用的时候才能更好的理解其精髓。

那么,在实际运用过程中如何使用模板技术呢?接下来我们就说道说道。

第一:了解模板技术的原理
        模板技术的本质其实是一种PHP代码与HTML分离,然后利用一些特殊符号在HTML嵌入对应的数据,最后利用PHP代码将对应的嵌入数据代码替换成真正的数据。学完了smarty我们就算知其然,了解了原理我们才能知其所以然。
        原理的理解必然是枯燥的,而且是痛苦的,而且好像很无用。因为实际运用的时候会发现,其实就是那么两三行代码就搞定了,非要通过原理解释搞的那么复杂。实际上就是这样,你用的越简单,意味着别人做的越复杂。就好像我们写代码,如果我们写的很粗糙,那么别人使用起来就会很不舒服,但是如果我们写的很详细,考虑的很周到,那么别人用起来就很傻瓜。既然我们是从事这一行,那么就必须接受要做一个复杂的人这一点。

第二:了解模板技术的运用
        模板技术发展到现在,已经不再是Smarty一家独大,很多框架都是自带模板技术的,但是本质的原理都是一样,无外乎有一点特意(更多的时候是为了证明这玩意儿是团队自己开发的,不是抄袭的)的小不同而已。因此,掌握了Smarty的应用,其他模板技术应用起来都是顺风顺水的。
         那到底怎么样算是掌握了模板技术的运用呢?so easy!{:8_492:}
        1、找到模板技术的应用入口:Smarty对应的就是Smarty类文件,在很多框架中如果是自带的,根本不用考虑,可以直接省略这一步;
        2、得到入口文件:Smarty是面向对象的,所以只要实例化得到对象即可(现在的PHP基本上都是面向对象的)。如果是框架本身自带,这一步依然可以省略;
        3、设定相关条件:不设定也是可以的,因为都会有默认值,但是最好根据自己的项目规范来设定一下,要设定的内容也不多,主要以下几项:
                ①:模板路径,这个是必须设定的,通常默认的路径都不会与实际开发项目一致,应用指数:★★★★★
                ②:编译目录,这个最好是设定一下,要不然默认路径可能不便于维护,应用指数:★★★★
                ③:缓存目录,这个与编译目录一样,通常在同级目录下,应用指数:★★★★
                ④:缓存生命周期和是否缓存,这两个内容是用来规范缓存的,而缓存是用来减少服务器压力的。但是缓存是需要根据项目实际需求来定的,如果项目对数据的实时性要求很高,通常不进行缓存(因为生成缓存是需要代价的);如果项目的数据的实时性要求不那么高,那么可以通过缓存来减少服务器的压力,然后通过缓存生命周期来设定缓存的更新迭代速度(开发环境通常不需要缓存,因为时刻在修改代码),应用指数:★★★★★
                ⑤:模板定界符,分为左右两个,默认的话绝大部分的模板技术都是“{}”,通常不需要改变,但是如果有一些js技术存在,如ajax或者jquery,那么也会存在{},就需要改变(现在js技术很流行,所以最好改变),应用指数:★★★★★
                补充:如果是框架自带的模板技术,通常可以找到对应的配置文件进行配置即可,不需要设定
        4、分配数据给模板:就是在有数据需要在HTML中解析的时候,把拿到的数据通过对应的assign方法(几乎所有模板技术都是这个方法),进行分配;
        5、模板解析数据:在HTML中利用设定要的定界符来实现数据的占位(理论上叫占位符,数据是模板技术在运行的时候自动替换)
        到以上为止,其实模板技术的应用就算是差不多了,总结一下就是:获取对象->设定属性->分配数据->解析数据。但是呢,有些数据比较复杂,比如说判定、循环等,所以还可以有一点其他内容;

        6、变量修饰器:对变量数据进行简单加工,如时间戳变时间等;
        7、内置函数:对数据进行复杂加工而已,如循环输出等。
        以上所有的内容,就算做是模板技术应用的一种思路,思路清楚后,其实即便是没有学过的内容,这个时候配上一个操作手册,可以完美解决问题的。

总结:总的来说,模板技术是比较简单的,但是要是实现复杂的模板技术本身是很复杂的。好在有这么多好人已经为我们程序员提供了遍历,因为我们更多的情况下是去应用这些技术而已。感谢那些大牛们吧!
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马