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

gz_phper

  • 黑马币:70

  • 帖子:41

  • 精华:0

PHP的学习未必只是局限在PHP的世界中,很多其他的语言也值得我们去涉猎。今天冯淦(gan去声)同学就将研究易语言的过程和工具使用给大家做了个分享。 首先介绍的是关于易语言的历史:基于Google的开发安卓的应用程序语言,属于组件式编程,当然不幸的是挂掉了~

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

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



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

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







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

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重载,数据验证等)

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


回复 使用道具 举报 1 0
第二十二天课程主要给同学们讲解了:模板技术原理介绍、SMARTY部署、SMARTY模板编译原理、SMARTY属性相关设置、SMARTY模板设计
今天的重点是:1)能够理解模板技术实现的基本原理;2)能够掌握并实现SMARTY的部署;3)能够理解SMARTY模板编译的原理;4)能够掌握SMARTY相关属性的设置;5)能够掌握模板变量的使用;6)能够掌握SMARTY系统变量的使用;7)能够掌握SMARTY内置函数的使用;8)能够掌握并使用SMARTY中主要的变量调节器;
今天操作的知识点比较丰富,希望同学们课后对知识点进行加强回顾,掌握操作技巧。

回复 使用道具 举报 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、内置函数:对数据进行复杂加工而已,如循环输出等。
        以上所有的内容,就算做是模板技术应用的一种思路,思路清楚后,其实即便是没有学过的内容,这个时候配上一个操作手册,可以完美解决问题的。

总结:总的来说,模板技术是比较简单的,但是要是实现复杂的模板技术本身是很复杂的。好在有这么多好人已经为我们程序员提供了遍历,因为我们更多的情况下是去应用这些技术而已。感谢那些大牛们吧!
回复 使用道具 举报
第二十三天和二十四天课程主要给同学们讲解了:什么是MVC、为什么使用MVC、MVC的实现和演变过程
MVC课程其实是一次将基础知识综合大应用的一个重要课程环节,通过实现一个小型的MVC框架,同学们需要掌握:1)MVC的原理和概念;2)MVC的基本结构;3)能够自主封装和实现父类模型(基础模型类);4)能够自主封装和实现父类控制器(基础控制器类)5)能够自主封装和实现核心框架类,并且在核心框架类中融入自动加载、单例工厂等功能元素6)能够自主封装和实现工具类的封装和使用;;
MVC是大家接触到的第一个完整的综合应用,代码量比较大,演变过程复杂,需要同学们课后进行大量的回顾练习,通过实际操作,实现MVC框架,以达到理解和掌握完整的MVC思想和框架技术。

回复 使用道具 举报
水水水,1234567
回复 使用道具 举报
2017-10-12
php27期博客项目阶段结束,晚上迎来了传说中的阶段考试。似乎眉头紧锁面露难色


整个班都在十分认真地完成题目


明天休息过后,就要迎来新一轮的挑战--中级项目!




WechatIMG724.jpeg (272.06 KB, 下载次数: 25)

WechatIMG724.jpeg

WechatIMG724_meitu_1.jpg (277.9 KB, 下载次数: 26)

WechatIMG724_meitu_1.jpg
回复 使用道具 举报
加油
回复 使用道具 举报
今天是中级项目第一天
中午的演讲主题是吸烟:




今天项目第一天,先完善博客项目未完成的内容。




回复 使用道具 举报 1 0
今天是中级项目第一天

中午演讲题目为如何戒烟


第一天继续完成博客项目
回复 使用道具 举报
今天是中级项目的第二天,虽然天气冷了不少,但是学生们的热情高照


小伙伴们在热情讨论功能

回复 使用道具 举报 2 0
中级项目第三天
每个组热火朝天地讨论各个功能,不会的点互相解答学习


回复 使用道具 举报
今天演讲讲到了程序员的健康问题------




回复 使用道具 举报
今天是项目的最后一天同学们都在热烈地讲述这几天的劳动成果



回复 使用道具 举报
今天是就业班第三阶段的第一天,讲了xml。今天的内容重点是:
  • 知道xml有什么实际的应用场景。
  • 能够获取xml中的数据,也就是如何通过simplexmlElement这个类操作xml。
  • 能够通过xpath路径查询语言,查找出符合条件的节点。
  • 能够通过php去调用第三方api接口返回的xml数据,然后取出数据展示在页面上。



附上今天的一个案例效果图片




回复 使用道具 举报
今天课程 JavaScript第一天 学生课间休息后仍然在攻克难点
回复 使用道具 举报
今天的演讲总体来说挺有深度也挺有趣的

回复 使用道具 举报
2017年10月22日,今天是js高级的第一天,知识量有点大,大家重点掌握以下知识: 1.明白基本数据类型和引用数据类型他们赋值的过程,基本数据类型是按值传递,引用数据类型是按址传递。
2.能够通过多种方式给一个元素绑定事件,以及常用的事件有哪些。
3.理解事件流中的冒泡和捕获,以及开发中怎么阻他们的发生。
4.能够使用事件委托给给元素绑定事件,从而提高性能。




回复 使用道具 举报 1 0
今天PHP27 唯二的妹子开始演讲咯


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马