介绍介绍福哥今天带着大家学习一下使用PHP操作MongoDB数据库的方法,虽然我们的TFLinux早就安装了MongoDB数据库了,但是还没有应用用到MongoDB数据库,福哥打算先给TFPHP框架增加操作MongoDB数据库的支持。PHP操作MongoDB数据库有两个库,最早直接使用mongo扩展就可以操作MongoDB了,但是最新...
介绍介绍今天开始我们来学习各种语言操作数据库的技巧,根据福哥学习编程的顺序,我们先来将PHP语言操作数据库的技巧。因为相对强大又免费的数据库只有MySQL了,所以我们这里只讲解各种语言操作MySQL数据库的方法,其他数据库福哥会在后面给逐步给大家讲解。PHP有很多版本,在PHP4的时代大家一般是通过php_mysql库来操作MySQL...
介绍介绍php7.4.6是一个划时代的产品,它让php对于强类型编程的支持度提升到了前所未有的的高度,不仅仅支持函数参数强类型,还支持函数返回值强类型,甚至对象属性也都支持强类型了在这样的环境下编写php是非常舒服的,一写复杂的功能也可以通过php来实现了,可靠性比着前面的版本要强太多了基本信息安装环境CentOS:CentOS Li...
介绍介绍福哥最近在把一部分功能从PHP转入Java里面,在处理PHP的序列化(Serialize)数据的时候遇到了问题,经过一番折腾找到了一个在Java里实现序列化的功能的第三方库。现在,福哥将这个库的使用方法交给大家!!依赖首先导入phprpc的依赖库<dependency>
&nb...
介绍介绍福哥今天要教给大家学会给自己的程序代码签名,签名的作用通常情况下是为了告诉使用我们的代码的人这个程序的原作者是谁。除此之外,签名还会把程序代码的版权协议告诉使用代码的人,不过在国内基本上除了特别出名的框架、插件、库会引起使用者的注意外,其他开源的程序代码基本没有人会在意版权问题~~无论如何,给我们的程序代码增加签名,至少可以帮...
介绍介绍今天开始福哥要给大家讲解关于字符编码的知识,所谓字符编码就是将一个字符串或者是一个二进制字节数组里面的每一个字符根据一定的规则替换成一个或者多个其他字符的过程。字符编码的意义有很多种,有的是为了将一些不可见的字符以可见字符替代保证可见度;有的是为了以少数字符去描述更多的其他字符便于传递数据;还有的是为了将不定长的字符串转成定长...
介绍介绍上一课童鞋们和福哥学习了TFPHP的响应对象TFRespnose涉及到的一些知识,包括:响应状态、响应数据类型、响应数据长度等等,在响应对象里面我们要对这些数据进行管理控制。这里面响应状态包含非常多的可选状态信息,所以福哥将响应状态封装了一个新对象TFResponseStatus。然后响应数据类型和响应数据长度相对比较简单,福...
介绍介绍今天我们来讲讲响应对象TFResponse,它也是系统级别的对象,它负责视图的输出。也就是说用户在浏览器上看到的一些网页内容都是通过TFResponse响应对象输出出来的。输出数据包括很多属性,如:响应数据类型、响应数据大小、服务器信息、服务器指令等等。响应对象TFResponse首先我们先建立TFResponse这个响应对象...
介绍介绍上一课大家已经跟着福哥了解了用户请求的基本知识了,今天我们就来把这个用户请求对象的功能实现了。因为用户请求包含很多输入数据,我们需要对每一个数据进行实体化,也就是说为它们建立独立的实体对象。在PHP语言里面这些输入数据都是以全局数组形式存在的,所以我们在建立这些实体对象的时候又可以使用相同的基类。基于这些分析结果,福哥会建立这...
介绍介绍福哥今天要带着大家完成一个系统级别的对象——请求对象TFRequest,这个对象会完成所有根用户请求相关的功能。而从用户请求里我们主要是要获取“输入数据”,输入数据包括QUERY参数、POST参数、服务器环境参数、客户端环境参数等等。请求对象TFRequest首先我们先建立请求对象TFRequest,程序文件保存在System...
介绍介绍隔了几天时间,福哥终于有时间了继续推进我们的TFPHP框架的进程了。今天我们继续设计模型模块,上一课我们已经完成了TFDO对象的设计,有了数据连接能力之后就可以进行模型对象TFModel的基本架构的设计了。大家都知道,模型对象TFModel是用来读取/写入数据的,所以我们需要在TFModel里面进行TFDO对象的初始化操作。但...
介绍介绍我们的TFPHP已经实现了路由TFRouter、控制器TFController、模型TFModel的模块的实现,同时我们还将php的数据库操作对象PDO扩展封装到了我们自己的对象TFDO里面。目前的TFPHP已经可以足够支持完成一般网站、小型平台的开发框架了。今天福哥会解决TFPHP的加载问题,大家都发现了,每次我们建立了新的...
介绍介绍今天我们来完成数据库操作对象TFDO的设计和实现,TFDO是基于PDO扩展开发的,所以我们需要在环境里面配置PDO扩展,使用TFLinux的童鞋们就省去了这个步骤,因为福哥已经带着大家配置了PDO扩展了。有的童鞋可能会有疑问,既然PDO可以实现对数据库的操作,我们为什么不直接使用PDO对象而非要基于它封装一个TFDO对象呢?难...
介绍介绍上一课大家跟福哥学会了在我们的TFLinux系统上面安装Kafka软件,今天福哥要带着大家学习使用PHP去操作Kafka消息系统的方法。PHP操作Kafka需要借助rdkafka库,我们可以在github上面下载到源代码进行安装。因为rdkafka是作为PHP扩展部署的,所以我们不需要重新编译PHP环境。安装下载下载librd...
介绍介绍开发一个网站需要考虑几个问题,首先就是编程语言,其次就是开发框架,最后还需要考虑模板引擎。编程语言这里我们自然是PHP语言了;开发框架就是编写网站后端功能模块的基础框架,这里福哥选择的是TFPHP框架;最后的模板引擎,就是在制作用户界面所使用的处理模块,也就是MVC架构里面说的视图,这里福哥就要引出今天的主角Smarty了。S...
介绍介绍今天福哥要带着童鞋们设计TFPHP的模型模块TFModel对象的设计,模型模块的职能就是对数据进行存储和读取,存储数据都是在一些外部介质上进行的,诸如:数据库,文件,内存等等。也就是说,模型模块需要连接这些外部介质的能力,说直白些就是模型模块需要可以连接MySQL,可以连接Redis,可以连接ElasticSearch等等外部...
介绍介绍今天福哥会带着大家实现接口控制器的逻辑以及它和路由模块的结合部分的逻辑,实现了这部分功能之后,就可以开发响应AJAX请求的接口了。接口控制器一般情况下是采用JSON作为传输数据的格式的,所以这里面会用到php自带的两个函数json_encode和json_decode。当然,除了JSON格式外,接口还会有XML数据格式以及自定...
介绍介绍今天福哥会带着大家实现网页控制器的逻辑以及它和路由模块的结合部分的逻辑,实现了这部分功能之后,每个用户的请求就会映射到具体的程序文件上面了。上一课我们提到过网页控制器需要借助Smarty这个模板扩展实现,所以我们需要先下载最新版本的Smarty模板扩展包,把它安装到我们的TFPHP里面。由于Smarty是第三方的代码,福哥打算...
介绍介绍福哥今天要带着大家完成控制器模块TFController对象的设计,控制器模块是web框架的核心模块之一,它负责管理控制网站数据,需要高度的兼容性和高度的灵活性,便于开发者进行高效地开发工作。设计控制器模块比路由模块要复杂许多,因为控制器模块有很多能力需要我们一个一个实现,今天我们就先把这些能力一个一个地列出来,逐一的设计它们...
介绍介绍童鞋们今天福哥就要带着大家完成路由对象TFRouter的功能了,首先福哥和大家先想一想如何映射才能起到安全又灵活的双重目的。第一点:既然要安全就是不能直接通过浏览器就可以访问到,这里面就必须借助路由的基本功能将非法请求进行一个屏蔽处理。第二点:除了安全还需要灵活,灵活就是高度的自由,也就是说我们不能对项目开发人员进行过多的限制...
介绍介绍今天我们主要需要达到的目标就是解决路由模块的核心功能,实现资源路径的映射功能。要实现资源路径的映射就需要能够对资源路径映射的操作有控制权,需要获得资源路径映射的控制权就需要借助Apache的rewrite模块了。Apache的rewrite模块是一个很厉害的模块,它实现在用户发起的请求达到服务器之后由服务器进行URI解析之前的...
介绍介绍福哥打算开始教给大家web编程,相比较java和php两种语言来说,php更加容易上手,所以福哥打算先教给大家基于php语言的web编程。web编程一定是建立在web框架上面进行的,福哥在对比yii和laravel以及福哥自主研发的tfapi三个web框架之后,觉得还不如带着大家一起做一个属于我们自己的web框架,这样可以让大...
介绍介绍上一课我们知道了什么是框架以及框架在编程当中起到的作用是什么,框架在编程当中的作用就是大幅减少相似项目开发过程中的重复工作。既然框架要解决的是相似项目的开发过程中的重复工作,那么区别很大的项目又该怎么办呢?例如:我们要开发一个Windows桌面程序,或者我们要做一套web系统的接口,又或者我们要做一个留言板网页,很显然这些不同...
介绍介绍福哥今天要跟大家讨论的主题是——框架,框架在编程里面的作用简单一句话解释就是:框架可以帮助我们快速地完成开发任务。咱们打个比喻,我们要组装一台兼容机电脑,我们会怎么做呢?当然首先我们需要去购买电脑配件,包括CPU、内存、显卡、主板、电源、机箱、显示器、键盘、鼠标等等。接着我们需要把主板安装到机箱里面,然后将CPU、内存、显卡插...
介绍介绍JSON格式数据是现如今使用极其广泛的WEB应用的数据格式,它有着结构清晰、语法简单、占用字节少等等特点。相比较早期流行的XML格式数据来讲,JSON格式数据有着更加轻便、可读性更好、解析速度更快等等优势。PHP语言操作JSON格式数据是有着先天优势的,因为PHP是弱类型语言,加上PHP自身的数组和JSON格式数据有着基本一致...
介绍介绍今天福哥将会给大家讲解PHP编程基础知识日期和时间的使用技巧,这个技术在程序开发时候的使用率还是非常高的,基本上95%以上的项目都离不开日期和时间的应用场景。关于日期和时间还是有很多知识需要了解的,如果不清楚这些的话,就会遇到很多奇怪的问题。在很多对时间控制很严格的系统里面会有非常复杂的时间处理逻辑,如果没有很好的使用经验甚至...
介绍介绍今天福哥带着大家来学习PHP读写文件的方法,虽然现阶段做项目需要用到文件操作的情况不多了,但是免不了在特殊情况下还是需要用到这个技术的。今天福哥还会给大家讲解PHP创建、删除、授权文件夹的方法,这个技术在提供用户上传功能的项目当中是非常常见的,通过动态建立文件夹将用户上传的文件分布式地保存在不同文件夹下面,避免单个文件夹下面的...
介绍介绍前面我们学习了编程的入门课程,了解的编程语言的基本语法,知道编程语言的基本要素。今天开始福哥开始给大家讲编程的基础知识,这个基础知识是用来提高编程水平的知识,基础知识每种编程语言的差异会比较大,所以福哥在讲解某一种编程语言的某一特性的时候,会标明这种特性针对的是哪一种编程语言,只想学习某一种编程语言的童鞋可以有选择的学习。第一...
介绍介绍福哥今天给大家讲的是入门课里的最后一堂课,也是编程里的精髓——对象(class)在c语言年代里没有对象(class)这个结构体,所以使用c语言开发的程序不会太过复杂,在大型项目当中,众多模块(module)之间都会出现大量的同名函数,为了避免这些函数的名称冲突,都会用非常长的函数名称,即:returnValue moduleN...
介绍介绍福哥今天要给大家讲讲编程里的重头戏——函数(function),有了函数,程序才是程序,为什么这么说呢?因为如果没有函数语法,所有重复工作(包括类似工作)都要重复编写代码,那样就失去了编程的价值。打个比喻说:如果程序没有函数,就好像做数学题没有公式一样,每次做类似的题目的时候,都要从头去用最原始是方法进行解题,这是不可想象的。...