定时任务可以使用 crontab 命令来设定: crontab -e #编辑某个用户的cron 服务 crontab -l  #列出某个用户cron 服务的详细内容 crontab -r  #删除某个用户的cron 服务 定时任务 crontab 格式: 分 小时 日 月 星期 命令 * * * * * 0-59 0-23 1-31 1-12 0-6 command * 代表取值范围内的数字 / 代表每,比如 /1 表示每分钟 */1 * * * * /usr/local/php/bin/php…
Redis 可以定期将数据备份到磁盘中(持久化),同时不仅仅支持简单的key/value 类型的数据,同时还提供list,set,hash等数据结构的存储:Memcache 只是简单的key/value 缓存. redis 的安装部署参见笔记:Redis 学习笔记与总结1 安装部署 ① 开启 redis 服务: [root@localhost bin]# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf ② 开启…
习要点概述1.APP接口简介 2.封装通信接口方法 3.核心技术 4.APP接口实例 服务器和客户端进行接口数据通信:服务器 -->数据库|缓存 -->调用接口 -->客户端 服务器从数据库或缓存中获取数据,调用封装好的接口获取接口数据,生成客户端的数据. 一.APP接口简介 知识对比:php面向对象接口,是一个抽象类,定义必须有interface关键字.如下图: 用于多人协作开发,提供规范的方法名,interface 类中定义抽象方法,在其他类中实现,所有的抽象方法必须实现,否则会报错…
APP 版本升级以及 APP 演示 ① 版本升级分析以及数据表设计 ② 版本升级接口开发以及 APP 演示 /** * version_upgrade 版本升级信息表 */ CREATE TABLE `version_upgrade` ( `id` ) unsigned NOT NULL AUTO_INCREMENT, `app_id` ) unsigned ' COMMENT '客户端设备id 1安卓pad 2安卓手机 3ios手机 4iospad', `version_id` ) unsig…
以静态缓存为例. 修改 file.php line:11 去掉 path 参数(方便),加上缓存时间参数: public function cacheData($k,$v = '',$cacheTime = 0){ //文件名 $filename = $this->_dir.$k.'.'.self::EXT; ..... line:25 把缓存时间设置为 11 位的数字,如果不满 11 位,则在时间前面补 0.再把缓存时间和缓存内容进行拼接: $cacheTime = sprintf('%011…
APP 上线以后可能遇到的问题: ① APP 强退 ② 数据加载失败 ③ APP 潜在问题 错误日志需要记录的内容 数据表 error_log 字段: id app_id:app 类别 id did:客户端设备号 version_id:版本号 version_mini:小版本号 error_log:错误信息(由 APP 返回,客户端开发工程师开发) error.php 处理 app 错误日志 <?php require_once('./common.php'); class ErrorLog e…
判定 app 是否需要加密:通过 app 表中的 status 字段来判定,加密的字符串为 app 表中的 key 字段. 在获取的客户端和服务器端(数据库表中相应字段)的版本号不一致时,返回 data['is_upload'] = 1 提示是否升级:一致时返回 data['is_upload'] = 0 不提示升级. common.php 中 getApp 方法可以添加缓存(静态/Redis等)缓存. common.php 处理接口公共业务 <?php /** * 处理接口公共业务 */ re…
要求: 1.在一个类中封装多种数据通信方法(JSON,XML),并且只通过一个入口选择需要的数据通信格式 2.客户端开发工程师可以自行选择数据传输格式(GET 方式) response.php <?php class Response{ const JSON = 'json'; //封装的综合方法,默认的数据类型为json public static function show($code,$message = '',$data,$type = self::JSON){ if(!is_numer…
用于 linux 执行 crontab 命令生成缓存的文件 crop.php <?php //让crontab 定时执行的脚本程序 require_once 'db.php'; require_once 'file.php'; $sql = 'select * from review where is_enabled = 1 order by creation_time desc limit 6'; try{ $connect = DB::getInstance()->connect(); }…
方案一:读取数据库方式 从数据库读取信息→封装→生成接口数据 应用场景: 数据时效性比较高的系统 方案二:读取缓存方式 从数据库获取信息(第一次设置缓存或缓存失效时)→封装(第一次设置缓存或缓存失效时)→返回数据 ↓                                              ↑ 缓存(缓存生效时)     →   →    →    → 方案三:定时读取缓存方式(crontab 定时任务) 封装并返回数据 ↑ 数据库→crontab→缓存 ↑ http 请求 ==…
单例模式 单例模式三大原则: ① 构造函数需要标记为非 public (防止外部使用 new 操作符创建对象),单例类不能在其他类中实例化,只能被自身实例化: ② 拥有一个保存类的实例的静态成员变量 $_instance ③ 拥有一个访问这个实例的公共的静态方法 单例模式(参见 PHP 单例模式代码片段): <?php /* * 单例模式 */ class DB{ static private $_instance; private function __construct(){ } stati…
存储静态缓存即把缓存写入文件. file.php <?php class Cache{ //静态缓存文件后缀名 const EXT = 'txt'; //定义缓存文件存放路径 private $_dir; public function __construct(){ $this->_dir = dirname(__FILE__).'/files/'; } public function cacheData($k,$v = '',$path = ''){ //文件名 $filename = $t…
1.PHP 生成 XML 数据 ① 拼接字符串 ② 使用系统类(DomDocument,XMLWriter,SimpleXML) 例1 使用 PHP 系统类中的 DomDocument 类: <?php $dom = new DomDocument('1.0','utf-8'); $element = $dom->createElement('test','This is a root element'); $dom->appendChild($element); echo $dom-&…
1.通信数据的标准格式 ( JSON ),包括: code:状态码(200,400等) message:提示信息(例如:数据返回成功.邮箱格式错误等) data:返回数据 2.JSON 方式封装通信接口 response.php <?php /** * 按json方式输出通信数据 * @param integer $code 状态码 * @param string $message 提示信息 * @param array $data 数据 * return string */ class Res…
PHP开发APP接口 [TOC] 课程地址 imooc PHP开发APP接口 学习要点 APP接口简介 封装通信接口方法 核心技术 APP接口实例 服务器端 -> 数据库|缓存 -> 调用接口 -> 客户端 APP接口简介 APP接口介绍 APP如何进行通信 通信格式区别 APP接口做的哪些事儿 APP接口介绍 概念 PHP面向对象的接口(interface)与APP中的接口(API)概念区别: interface是一种特殊的抽象类,只定义一系列抽象方法. // 定义一个接口 inter…
视频学习地址: http://study.163.com/course/courseMain.htm?courseId=1004171002 源码和文档(如果满意,欢迎 star): https://github.com/RiversCoder/tp5-api 百度云盘链接:https://pan.baidu.com/s/1jMNumEOJ2yO5kSKYfnGjOw 密码:l8qr 看云文档: https://www.kancloud.cn/momingsixiali/thinkphp-res…
目录 第4节 为api项目搭建数据库 第5节 使用markdown书写接口文档 第6节(判断数据库中是否有此用户) 第7节 为项目配置URL 需求分析 配置主域名和二级域名 使用tp5路由进行URL解析 设置路由文件 第8节 接口安全 第9节 接口开发前的准备工作(参数过滤) 第9节 获取验证码 --- 第10节 用户注册 第11节 用户登录 第12节 用户上传头像 第13节 用户修改密码 第14节 找回密码 第15节 用户手机号/邮箱绑定 第16节 用户修改昵称 第17节 新增文章 第18节…
这里将会调用前面博客的数据库连接单例.文件缓存类和开发APP接口(一) <?php // http://app.com/list.php?page-=1&pagesize=12 require_once('./response.php'); require_once('./file.php'); $file = new File(); $data = $file->cacheData('index_cron_cahce'); if($data) { return Response::s…
今天继续Smobiler开发APP的学习日志,这次是做一个title.toolbar.侧边栏三种效果 样式一 一.          Toolbar 1.       目标样式 我们要实现上图中的效果,需要如下的操作: 2.       修改属性 a.         修改Mobile Form的Toolbar属性 获取窗体底部工具栏,打开集合编辑器,并点击“添加”,分别填写数据,如图 1.图 2: 图 1设置界面1 图 2设置界面2 b.         修改Mobile Form的Toolb…
<疯狂前端开发讲义jQuery+Angular+Bootstrap前端开发实践>学习笔记 二〇一九年二月十三日星期三2时28分54秒 前提:本书适合有初步HTML.CSS.JavaScript基础的读者,或对企业应用前端开发不太熟悉的开发人员. 第1章:前端开发与Ajax技术 要点:C/S模式应用的结构和缺点:B/S模式应用的结构和优势:传统Web应用的不足:如何改进传统的Web应用:现代Web应用与前端开发:改进的通信方式和增强的UI界面:体验前端Ajax开发:使用Serlet生成文本响应内…
Docker学习笔记二(linux下安装Docker) 1.在线安装linux Docker 这种方式首先要保证linux 环境下可以上网,当然,小编是在自己的电脑上安装了虚拟机,在虚拟机上安装了,linux系统,你也可以直接操作linux系统:如果需要学习如何安装.学习,虚拟机,并安装linux系统,可以参考小编另外一篇博客,写博不易,请支持. 查看linux系统(当然一下你可以不做,小编只是查看下安装信息): 1.uname -a Linux查看版本当前操作系统内核信息 [root@loca…
申明:本文是学习2014版ASP.Net视频教程的学习笔记,仅供本人复习之用,也没有发布到博客园首页. 一.一般处理程序基础 (1)表单提交注意点: ①GET通过URL,POST通过报文体: ②需在HTML中为表单元素设置name: ③元素id是给Dom用的,name才是提交给服务器用的: (2)请求处理响应模型: ①浏览器发出访问请求→②服务器处理访问请求并返回HTML→③浏览器解析HTML并显示页面 (3)GET与POST的区别:(★★★→重点) ①GET通过URL传值,而POST通过HTT…
驱动开发读书笔记. 0.04  linux 2.6 platform device register 平台设备注册  1/2 共2篇下面这段摘自 linux源码里面的文档 : Documentation/driver-model/platform.txt Device Enumeration 82 ~~~~~~~~~~~~~~~~~~ 83 As a rule, platform specific (and often board-specific) setup code will 84 reg…
第1章 APP接口简介 - 课程简介 (:) - APP接口介绍 (:) - 客户端APP通信 (:) 最近学习 - 客户端APP通信格式区别 (:) - APP接口做的哪些事儿 (:) 第2章 封装通信接口方法 - JSON方式封装通信接口 (:) - PHP生成XML数据 (:) - XML方式封装通信接口 (:) - 综合方式封装通信数据方法 (:) 第3章 核心技术 - 静态缓存 (:) - Memcache和Redis缓存技术 (:) - 定时任务 (:) 第4章 APP接口实例 -…
这是我跟着虫师学习中积累下来的学习笔记,写得比较简单,适合想学习Python开发与接口测试的初学者学习. 一.开发投票系统 1.参考官网文档,创建投票系统. https://docs.djangoproject.com/en/1.11/intro/tutorial01/ 在创建投票系统之前,要确认自己安装的Django和官网的文档是一致的. ==================== win 10 Python 3.6.2 Django 1.11.3 Pycharm编译器 ============…
协议学习地址:http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html 本篇学习笔记来自于慕课网上学习JMeter的学习笔记 学习的内容包括: 1.不同角色眼中的接口(主要是指开发测试两个角度) 2.常见的接口协议 3.HTTP协议栈中的位置 4.HTTP协议响应码 5.HTTP协议响应模型 6.常见的HTTP协议的请求方式 7.JMeter的功能介绍 8.get与post请求 一.不同角色眼中的接口 对于开发者而言,接口是模…
微软的Office系列办公套件从Office 2007开始首次引入了Ribbon导航菜单模式,其将一系列相关的功能集成在一个个Ribbon中,便于集中管理.操作.这种Ribbon是高度可定制的,用户可以将自己常用的功能进行单独设置,提高工作效率.但是由于Office 2003时代用户的操作习惯已经养成,结果到了Office 2007很多菜单.按钮都找不到了,着实有些尴尬.经过一段时间的适应,相信大多数用户已经习惯Ribbon式的界面了.到了Office 2010时代,微软已经将所有Office产…
本文是依据lua游戏开发实践指南做的一些学习笔记,仅用于继续自己学习的一些知识. Lua基础 1.  语言定义: 在lua语言中,标识符有非常大的灵活性(变量和函数名),只是用户不呢个以数字作为起始符.也要避免下划线(_)接大写字母.由于这样的格式为lua自身保留如_Start. 建议用户使用例如以下格式和命名规则来定义变量.常量和函数名: ①  常量用全大写和下划线,比如:MY_CONSTANT ②  变量第一个字母小写,比如:myVariable ③  全角变量第一个字母用小写g表示,比如:…
目标:能够把电脑当作一个集成有高性能处理器的开发板用起来,当然,还自带了一个高级的操作系统Windows(必须的).总之,就是在一个带了操作系统的高性能开发板上的驱动程序开发. 性质:纯属业余爱好 1.昨天下载了WDK 7.1.0 Free版(From MS的正版,需要注册一个Windows Live ID,下载链接http://www.microsoft.com/downloads/en/confirmation.aspx?familyId=36a2630f-5d56-43b5-b996-76…
首先说明一下客户端APP通信的格式 1.xml:扩展标记语言(1.用来标记数据,定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言,xml格式统一,跨平台和语言,非常适合数据传输和通信,早已成为业界公认的标准) <?xml version="1.0" encoding="UTF-8"?> <item> <title>测试</title> <test id="1"> <de…