php框架

ORM PHP 学习记录

喜夏-厌秋 提交于 2020-01-14 01:44:12
ORM:object relation mapping,即对象关系映射,简单的说就是对象模型和关系模型的一种映射。为什么要有这么一个映射?很简单,因为现在的开发语言基本都是oop的,但是传统的数据库却是关系型的。为了可以靠贴近面向对象开发,我们想要像操作对象一样操作数据库。 举个例子:获取一篇文章,传统的方式先要执行一个sql检索数据 select * from post where id = 1 然后输出标题和内容使用 echo $post['title']; echo $post['content']; 上面的代码遇到面向对象强迫症者,他们会纠结死的。 所以他们想出了这个东西,在ORM里获取一篇文章可以这样: $post = postTable::getInstance()->find(1);#会再内部执行select * from post where id = 1 然后输出: echo $post->getTitle(); echo $post->getContent(); 妈妈再也不用担心我的强迫症了^_^ 高级点的应用,文章和分类是一对多关系、文章和标签是多对多关系 $cate = $post->getCategory(); //获取文章分类 echo $cate->getName(); //获取分类名 $tags = $post->getTags(); /

PHP早已不是十年前的鸟样

烂漫一生 提交于 2020-01-13 23:42:44
HP早已不是十年前的鸟样 Brent 承认 PHP 当前仍然存在一些问题,比如许多核心函数仍然有不一致的方法签名、配置设置还是令人困惑,但是以他自己的开发经验来看,他认为 PHP 是 Web 开发的绝佳选择,使用 PHP,他可以创建可靠、可维护和高质量的应用,并且自己与客户对最终结果都满意。( 学习推荐 ) 文章中 Brent 关注于 PHP 这些年来发展得好的一面,他通过几下几点,说明“PHP 不再是十年前那一门糟糕的语言了”: ● PHP 正在积极开发,每年都会发布新版本 ● PHP 5 之后性能在不断提高 ● 有非常活跃的框架、包和平台组成的语言生态 ● PHP 在不断发展,过去几年中添加了许多新功能 ● 各种开发工具在过去几年中已经成熟,并且保持增长 PHP 正在积极开发,每年都会发布新版本 当前 PHP 版本是去年 12 月份发布的 7.3,7.4 预计在今年年底发布,而 PHP 8.0 将是 7.4 之后的下一个版本。 自从 5.X 时代以来,核心团队希望每年发布一个新版本,在过去四年中他们成功维护了这么一个发布周期。通常每个新版本都会得到官方两年时间的积极支持,之后有一年仅提供安全修复,其目的是激励 PHP 开发人员尽可能保持更新。 看到上边这个表,你可能会发现版本号从 5 跳到了 7,那 PHP 6 去哪里了? 顺便科普一下。其实早在 2005 年,PHP

PHP ORM-持久层框架解决方案

懵懂的女人 提交于 2020-01-13 09:38:39
重点推荐: http://www.phpactiverecord.com/ ---- php.activerecord 1、Propel Propel是一个适用于PHP5的OR映射(Object Relational Mapping)框架,它基于Apache Torque提供对象持久层支持。它通过XML格式的模式定义文件和相应的配置文件来生成SQL和类,它允许你使用对象代替SQL来读写数据库表中的记录。Propel提供一个生成器来为你的数据模型创建SQL定义文件和PHP类。开发者也可以十分简单的定制生成的类,我们还可以通过XML, PHP类和Phing构建工具把Propel集成到已有的应用开发框架中去.例如PHP框架symfony的1.2以前的版本就是默认使用了精简版的Propel作为默认ORM框架。 官方网站: http://www.propelorm.org/ 2、Doctrine Doctrine是一个PHP的ORM框架,它必须运行在>=php5.2.3版本上,它是一个功能强大的数据抽象层.它的一个主要特征就是使用面向对象的方式来实现数据库查询的封转,它底层通过一个类似 Hibernate HQL的DQL的查询语句进行数据库查询, 这使得开发的灵活性更强,大大减小了重复代码。相比Propel,Doctrine的优点在于它支持支持全文检索

怎么从一名码农成为架构师的必看知识点:目录大全(不定期更新)

烂漫一生 提交于 2020-01-12 17:11:40
怎么从一名码农成为架构师的必看知识点 面试题系列: 分享一波腾讯PHP面试题 2019年PHP最新面试题(含答案) Redis 高级面试题 学会这些还怕进不了大厂? 阿里面试官三年经验PHP程序员知识点汇总,学会你就是下一个阿里人! php面试题之PHP核心技术 掌握 Redis这些 知识点,面试官一定觉得你很 NB 当面试官问你:如何进行性能优化? PHP 经典面试题集 Thinkphp系列: ThinkPHP6源码分析之应用初始化 ThinkPHP6源码:从Http类的实例化看依赖注入是如何实现的 thinkphp 6.0 swoole扩展websocket使用教程 ThinkPHP5开发API接口实例 Laravel系列: 一些实用的 Laravel 小技巧 Laravel :Laravel、Symfony、 Zend 对比测试 开发 Laravel 扩展的基本流程 LaravelS - 基于Swoole加速Laravel/Lumen - 带你飞 Laravel 中使用 swoole 项目实战开发案例一 (建立 swoole 和前端通信) Laravel 中使用 swoole 项目实战开发案例二 (后端主动分场景给界面推送消息) Laravel 5.6 中优雅的管理 swoole 进程 Docker容器里配置计划任务 crontab(DaoCloud+Docker

关于PHP的框架

匆匆过客 提交于 2020-01-11 21:08:04
使用PHP框架有优点也有缺点,优点是避免重复劳动、简化很多操作、方便团队项目开发及维护,框架已经帮助你完成了很多工作,业务层主要侧重于业务功能的开发,缺点是由于调用框架对系统性能会有一点影响,因为框架会来回加载很多文件,所以对性能会有一点影响,不过可以通过类似APC、Zend OPCache的工具来提高性能,另外学习PHP框架需要一些时间,因为你不能保证你所招的人每个人都会你当前正在使用的框架。 通过我的观察,各家公司使用最多的几个PHP框架是Thinkphp、CodeIgniter、Yii,也有部分公司使用Zend Framework、Laravel、Yaf、SpeedPHP、CakePHP、Symfony 等等框架,还有部分公司是自定义的框架,借鉴别的PHP框架的思想然后加上一些自己需要的功能。 上述这些框架有类似的地方,也有不同的地方,这些框架全部掌握是不太可能的,每个人的精力是有限的,熟练使用一到二个框架以后,再入门或熟悉其它的框架就容易多了,有的公司招聘信息上面不要求掌握PHP框架,只是要求熟练使用PHP。 http://www.baidu.com/s?wd=php开发框架 http://www.sogou.com/web?query=php开发框架 http://www.so.com/s?q=php开发框架 来源: https://www.cnblogs.com

php框架

人走茶凉 提交于 2020-01-11 21:04:47
一、php框架 1、真实项目开发步骤: 多人同时开发项目,协作开发项目、分工合理、效率有提高(代码风格不一样、分工不好) 测试阶段 上线运行 对项目进行维护、修改、升级(单个人维护项目,十分困难,代码风格不一样) 项目稳定的运行阶段 项目停止运行(旧项目的人员已经全部离职,新人开发新项目) 2、带来的问题: 多人开发项目,分工不合理,(html php mysql) 代码风格不一样,后期维护十分困难 项目生命周期十分短,项目生命没有延续性,造成资源浪费、人员浪费 项目不能很好适应客户需求,牵一发而动全身。 3、什么是框架:   一堆代码的集合,里边有变量、函数、类、常量,里边也有许多设计模式MVC、AR数据库、单例等等。   框架可以节省我们50-60%的工作量,我们全部精力都集中在业务层次。 4、为什么使用框架 l 框架可以帮组我们快速、稳定、高效搭建程序系统 l 该系统由于框架的使用使得本身的维护性、灵活性、适应客户需求方面得到最大化的增强。 l 使用框架的过程中可以使得我们的注意力全部集中业务层面,而无需关心程序的底层架构。 5、其他相关框架 zendframework:zend php语言公司发布的官方框架,重量级(功能多) yii: 美国华人开发的框架, 重量级框架,纯OOP框架, 该框架的特点就是代码的可重用性非常好。 CI CodeIgniter: 轻量级框架

对于PHP大型开发框架的看法

一曲冷凌霜 提交于 2020-01-11 21:01:01
  PHP从诞生以来就受到广大编程爱好者的喜欢,成为中小站长的好帮手,并培养了大量的PHP编程人员,但是随着PHP的应用越发广泛,很多时候已不限于从事中小网站的应用,一些大型PHP项目也屡见不鲜。 当我们选择PHP开发大型项目时,就不得不考虑开发效率、开发规范、后期维护等问题,这时大家往往会选择一款人们所认可的开发框架,目前所流行的Zend Framework、Yii、Symfony、CodeIgniter、CakePHP等都声称有着开发大型应用的能力。 新框架层出不穷,但当我们真正应用这些框架去实现产品又总是会有各种不同的问题产生: 一、大型框架的背后往往有着较为深厚的结构理论,最熟悉的莫过于MVC、ORM这样耳熟能详的理论术语,还有很多深度面向对象方面的知识,但是真正了解这些的人却为数不多,使得应用门槛急剧攀升;除此大型框架中的应用细节更是纷繁复杂,学习成本也相对较高,这对于原本只是定位中小应用的PHP变得尤为尴尬。 二、PHP做为一门脚本语言,它的运行往往基于宿主进程(如:apache、php-fpm),在单次请求上经历创建进程、初始化环境、编译脚本、运行引擎、输出、资源回收、进程销毁等一系列过程,在编程语言层面综合运行效率上要比编译型语言慢上2-3个数量级,伴随着消耗大量的系统资源,在此基础上我们还要搭建及加载复杂的开发框架更是增加了其运行成本

对于PHP大型开发框架的看法

笑着哭i 提交于 2020-01-11 20:58:14
PHP 从诞生以来就受到广大编程爱好者的喜欢,成为中小站长的好帮手,并培养了大量的 PHP 编程人员,但是随着 PHP 的应用越发广泛,很多时候已不限于从事中小网站的应用,一些大型 PHP 项目也屡见不鲜。 当我们选择 PHP 开发大型项目时,就不得不考虑开发效率、开发规范、后期维护等问题,这时大家往往会选择一款人们所认可的开发框架,目前所流行的 Zend Framework 、 Yii 、 Symfony 、 CodeIgniter 、 CakePHP 等都声称有着开发大型应用的能力。 新框架层出不穷,但当我们真正应用这些框架去实现产品又总是会有各种不同的问题产生: 一、大型框架的背后往往有着较为深厚的结构理论,最熟悉的莫过于 MVC 、 ORM 这样耳熟能详的理论术语,还有很多深度面向对象方面的知识,但是真正了解这些的人却为数不多,使得应用门槛急剧攀升;除此大型框架中的应用细节更是纷繁复杂,学习成本也相对较高,这对于原本只是定位中小应用的 PHP 变得尤为尴尬。 二、 PHP 做为一门脚本语言,它的运行往往基于宿主进程(如: apache 、 php-fpm ),在单次请求上经历创建进程、初始化环境、编译脚本、运行引擎、输出、资源回收、进程销毁等一系列过程,在编程语言层面综合运行效率上要比编译型语言慢上 2-3 个数量级,伴随着消耗大量的系统资源

搭建自己的PHP框架心得(二)

被刻印的时光 ゝ 提交于 2020-01-11 01:49:58
/*--> */ /*--> */ 续言 对于本次更新,我想说: 本框架由本人挑时间完善,而我还不是PHP大神级的人物,所以框架漏洞难免,求大神们指出。 本框架的知识点应用都会写在博客里,大家有什么异议的可以一起讨论,也希望看博客的也能学习到它们。 本次更新,更新了函数规范上的一些问题,如将函数尽量的独立化,每一个函数尽量只单独做好一件事情,尽量减少函数依赖。还对框架的整体优化了一下,添加了SQ全局类,用以处理全局函数,变量。 再次贴出GITHUB地址: Sqier框架GITHUB地址 回调函数 替换了很low的类名拼装实例化,然后拼装方法名的用法,使用PHP的回调函数方式: 原代码: $controller_name = 'Controller\\' . self::$c_name; $action_name = self::$a_name . 'Action'; $controller = new $controller_name(); $controller->$action_name(); 修改后代码 $controller_name = 'Controller\\' . self::$c_name; $controller = new $controller_name(); call_user_func([ $controller, self::$a_name .

Think PHP 6 .0 学习笔记

会有一股神秘感。 提交于 2020-01-10 11:14:34
Think PHP 6 .0 学习笔记 特性 全面支持组件模式开始 全面支持采用PHP7强类型特征 全面支持几乎所有的 PSR 开发规范 实现了多应用支持 全面引入事件系统代替行为 全新的应用服务架构 视图和模板引擎分离,项目配置更灵活 IDE助手,使编辑器智能提示更准确 对原来版本的一些函数和类方法进行了统一和精简 环境要求 PHP 7.1 + 下载方式 通过 Composer 和 Git下载,Composer可以理解为一个应用商城 Composer 更新 composer selfupdate Composer 下载 ThinkPHP 6.0 框架源码 composer create-project topthink/think tp6 6.0.*-dev 启动服务 切换到项目所在位置,输入以下命令,用来检测项目是否下载成功 php think run 系统的配置 系统推荐通过环境变量 .env 的方式进行系统的配置 举个栗子:(注:; 表示注释,database_type 中的database表示对应config文件夹中的database.php 文件) .env 文件 ; 开启跟踪器 app_trace = true ; 数据库的配置项 database_type = 'mysql' database.php 文件 use think\facade\Env; 'type'