php框架

我在盛大的这些年

对着背影说爱祢 提交于 2020-02-07 02:32:08
转眼间已经毕业两年半了,来盛大也已经三年半的时光了。几多欢喜几多愁,时光荏苒,不变的是这棵依旧萌动的心。 2010年8月我只身一人来到上海,来到了这家当时令很多同学都艳羡的公司(盛大给实习生的待遇几乎是当时实习生待遇最高的),从事c++后端服务的研发,开始了全新的工作生涯。经过一个多月的学习之后,便开始了真实的项目。 2010年10月,我参与了工作后第一个正式的项目---基于现有网络库开发一个Linux平台下的verifyserver。这个项目计划由三个人完成---一个老员工,我,邦邦(一个研究生实习生),我和邦邦只负责异步日志等边缘模块开发,宗指导想让我们练练手,但高高不同意,因为这个系统比较重要,而我们只是刚刚入职一个月的实习生,不放心。宗指导爱莫能助,于是我继续学习网络库。一个星期过去了,宗指导突然找我说,给你两天时间,完成那个verifyserver。我当时压力很大。最终花了一周的时间才开发并白盒测试完成。后来才知道,宗指导对x员工开发了一周的代码不满意才让我去重新开发,再后来我开发的那个上线了。这期间我成长很多,要感谢宗指导的耐心指导,还要感谢广广review代码时的认真,让我知道了在所有的异常处打日志的必要性,否则的话发生异常时找不到原因是一件很头痛的事情。 2010年11月,实习的第三个月,我开发了网关服务。刚开始是我和另外一个同事写的

PHP的MIPS交叉编译(CC=mipsel-openwrt-linux-uclibc-gcc,LD=mipsel-openwrt-linux-uclibc-ld)

試著忘記壹切 提交于 2020-02-07 00:21:01
物联网内存吃紧,跑JVM这种内存大户肯定吃不消. 要跑还是跑C实现的服务,比如Nginx+PHP+SQLite. 比如一些家用无线路由器,系统是Linux发行版OpenWrt,内存只有64MB到128MB,单核580MHz. 而PHP内置HTTP服务器和SQLite数据库,在无线路由器里对外提供HTTP服务丝毫没有问题. 交叉编译PHP也很简单: cd /opt/miwifi/src/php-7.1.5 CC=mipsel-openwrt-linux-uclibc-gcc \ AR=mipsel-openwrt-linux-uclibc-ar \ LD=mipsel-openwrt-linux-uclibc-ld \ RANLIB=mipsel-openwrt-linux-uclibc-ranlib \ STRIP=mipsel-openwrt-linux-uclibc-strip \ ./configure \ --host=mipsel-openwrt-linux-uclibc \ --prefix=/opt/miwifi/php/7.1 \ --enable-cli \ --disable-cgi \ --disable-fpm \ --disable-phpdbg \ --disable-all \ --with-sqlite3 \ --with-pdo-sqlite \

PSR规范

蹲街弑〆低调 提交于 2020-02-06 03:16:16
04是自动加载的规范, 12是代码规范, 3是日志规范,后面的数字就是升级版 PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准。 项目的目的在于:通过框架作者或者框架的代表之间讨论,以最低程度的限制,制定一个协作标准,各个框架遵循统一的编码规范,避免各家自行发展的风格阻碍了 PHP 的发展,解决这个程序设计师由来已久的困扰。 目前已表决通过了 6 套标准,已经得到大部分 PHP 框架的支持和认可。 1.PSR-0 自动加载规范,此规范已被启用-本规范已于2014年10月21日被标记为弃用,目前新的替代规范为【PSR-4】 本文是为自动加载器实现通用自动加载所需要遵循的编码规范 一个标准的命名空间与类名称的定义必须符合以下结构:<Vendor Name> (ClassName) 其中Vendor Name 为每个命名空间都必须要有的一个顶级命名空间名 需要的话,每个命名空间下可以拥有多个子命名空间 当根据完整的命名空间名从文件系统中载入类文件时,每个命名空间之间的分隔符都会被转换成文件夹路径分隔符 类命名中的每个_字符也会被转换成文件夹路径分隔符,而命名空间中的_字符则是无特殊含义的。 当从文件系统中载入标准的命名空间或类时,都将添加.php为目标文件后缀 组织名称(Vendor

AJAX

为君一笑 提交于 2020-02-03 21:13:42
1.什么是Ajax? AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。 比如说你在淘宝搜索一个东西的时候你输入第一个字搜索框底下会出现很多东西,当你又增加一个字的时候底下的关联内容就会发生变化,这就是ajax。 post与get 一个网页向服务器发送数据会请求数据一般有get和post二种方法 下面先对这二种方法进行介绍: get :GET请求会将发送数据放到URL后面,并且对传送数据大小有限制并且不安全 < form action = "http:\\www.baidu.com" method = "get" > < input type = "text" name = "userName" > < br > < input type = "password" name = "userPwd" > < br > < input type = "submit" value = "提交" > < br > < / form > post :将发送的数据保存至文件头 没有数据大小限制 安全 一般多采用这种方式 这里的php文件可以里面啥都不写 < form action = "" method = "get" > < input type = "text" name = "userName" > < br > < input type =

php MVC框架搭建

眉间皱痕 提交于 2020-02-03 04:07:04
一、文件结构 建立3个文件夹 controller文件夹存放控制器文件 view文件夹存放视图文件 model文件夹存放数据文件 建立1个index.php 作为唯一入口 二、控制器 我们在controller文件夹下建立一个democontroller.php文件,文件内容如下 复制代码 代码如下: <?php class DemoController { function index() { echo('hello world'); } } /* End of file democontroller.php */ 这个文件里面我们只是建立了一个名为DemoController的对象并包含一个index的方法,该方法输出hello world。下面在index.php中执行DemoController中index方法。 index.php的代码如下 复制代码 代码如下: <?php require('controller/democontroller.php'); $controller=new DemoController(); $controller->index(); /* End of file index.php */ 运行index.php,ok如愿我们看到了我们久违的hello world。这两个文件非常简单,但也揭示了一点点mvc的本质

简洁php的MVC框架

此生再无相见时 提交于 2020-02-03 03:53:08
一、文件结构 建立3个文件夹 controller文件夹存放控制器文件 view文件夹存放视图文件 model文件夹存放数据文件 建立1个index.php 作为唯一入口 二、控制器 我们在controller文件夹下建立一个democontroller.php文件,文件内容如下 复制代码 代码如下: <?php class DemoController { function index() { echo('hello world'); } } /* End of file democontroller.php */ 这个文件里面我们只是建立了一个名为DemoController的对象并包含一个index的方法,该方法输出hello world。下面在index.php中执行DemoController中index方法。 index.php的代码如下 复制代码 代码如下: <?php require('controller/democontroller.php'); $controller=new DemoController(); $controller->index(); /* End of file index.php */ 运行index.php,ok如愿我们看到了我们久违的hello world。这两个文件非常简单,但也揭示了一点点mvc的本质

写自己的php框架(一)

。_饼干妹妹 提交于 2020-02-03 03:27:11
从本篇开始介绍如何用php来实现MVC模式开发,而且后续的文章也是在这个基础上不断改造优化。关于MVC这里就不多说了,并且在以后的文章里也是以讲技术为主。 本篇先介绍一下php的MVC实现原理,我们框架的MVC部分也是基于此原理实现的,但是今天的代码并不是框架内的代码,仅仅为说明原理。 一、文件结构 建立3个文件夹 controller文件夹存放控制器文件 view文件夹存放视图文件 model文件夹存放数据文件 建立1个index.php 作为唯一入口 二、控制器 我们在controller文件夹下建立一个democontroller.php文件,文件内容如下 <?php class DemoController { function index() { echo('hello world'); } } /* End of file democontroller.php */ 这个文件里面我们只是建立了一个名为DemoController的对象并包含一个index的方法,该方法输出hello world。下面在index.php中执行DemoController中index方法。 index.php的代码如下 <?php require('controller/democontroller.php'); $controller=new DemoController();

打造属于自己的MVC框架

拜拜、爱过 提交于 2020-02-03 03:24:11
本篇先介绍一下php的MVC实现原理,我们框架的MVC部分也是基于此原理实现的,但是今天的代码并不是框架内的代码,仅仅为说明原理。 一、文件结构 建立3个文件夹 controller文件夹存放控制器文件 view文件夹存放视图文件 model文件夹存放数据文件 建立1个index.php 作为唯一入口 二、控制器 我们在controller文件夹下建立一个democontroller.php文件,文件内容如下 <?php class DemoController { function index() { echo('hello world'); } } /* End of file democontroller.php */ 这个文件里面我们只是建立了一个名为DemoController的对象并包含一个index的方法,该方法输出hello world。下面在index.php中执行DemoController中index方法。 index.php的代码如下 <?php require('controller/democontroller.php'); $controller=new DemoController(); $controller->index(); /* End of file index.php */ 运行index.php,ok如愿我们看到了我们久违的hello

PHP高并发高负载系统架构

给你一囗甜甜゛ 提交于 2020-02-01 10:03:25
一、高并发和高负载的约束条件 硬件 部署 操作系统 Web 服务器 PHP MySQL 测试 二、解决之道—— 硬件篇 处理能力的提升:部署多颗CPU,选择多核心、具备更高运算频率、更大高速缓存的CPU; 处理能力的提升最直接的反应在于Web请求的处理效率和PHP程序的执行效率。 内存带宽与容量:更大的内存带宽和容量; 内存带宽与容量的提升最直接的反应在于应对数据库大量的数据交换。 磁盘搜索与I/O能力:选择更高的转速、更大的硬盘缓存、组件磁盘阵列(RAID); 磁盘搜索与I/O能力的提升最直接反应在于数据库大量的查询和读写以及文件的读写。 网络带宽的提升可考虑的因素包括: 更大带宽、多线路接入、独享带宽; 服务器在大负载的情况下,对网络带宽的占用是十分可观的。 策略:硬件设施是应对大负载的基础,硬件设施的投入可根据实际压力和预算量力而行。 三、解决之道—— 部署篇 3.1、服务器分离 32、数据库集群和库表散列 3.3、镜像 3.4、负载均衡 分类: 1)、DNS轮循 2)代理服务器负载均衡 3)地址转换网关负载均衡 4)NAT负载均衡 5)反向代理负载均衡 6)混合型负载均衡 策略:根据硬件投入和业务需求,选择合理的部署方案。 部署方案1 : 适用范围:静态内容为主体的网站和应用系统;对系统安全要求较高的网站和应用系统。 Main Server :主服务器

一周目笔记---随时更新(随手记,如果有问题可以ctrl+f在我的这文档里找找看有没有相关的,相关词尽量少一些)

浪尽此生 提交于 2020-02-01 00:04:19
1.鲁棒性:计算机 软件 在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,就是该软件的鲁棒性。 2.指针:在PHP中数组之间的赋值,并不像其他语言一样是通过指针的形式,传递地址,而是实打实地传递数据。在PHP中可以用&来引用数据。 3.html:HyperText Markup Language 超文本标记语言 css:Cascading Style Sheets 层叠样式表 js:JavaScript 一种直译式脚本语言 jQuery:是一个快速、简洁的JavaScript框架(js) php:Hypertext Preprocessor 超文本预处理器 HTTP:HyperText Transfer Protocol 超文本传输协议 4.https在http的基础上对传输的数据提供了加密的一个协议。 5.响应头里的 charset和html的mete标签里的charset都是告诉浏览器用什么编码方式解读数据,只不过mete标签里的charset在浏览器解析响应数据的时候是无效的,浏览器只以请求头的charset为准,默认是UTF-8。 6.json:JavaScript Object Notation 是一种类似于JS的字面量描述数据的手段。 (1)JSON中属性名称必须用双引号包裹 (2)JSON中字符串必须用双引号包裹 (3)JSON中不允许使用注释