目录: 1 框架 发展背景 2明确你的需求 2.1你的应用程序主要集中于解决哪些问题? 2.2你的主机运行环境将是什么? 2.3你的开发人员或团队的优势和劣势在于什么? 2.4如何在“高耦合性”还是“低耦合性”的 框架 中做出选择? 3目前主流的开发 框架 3.1Openbiz
目录:
1框架发展背景
2明确你的需求
2.1你的应用程序主要集中于解决哪些问题?
2.2你的主机运行环境将是什么?
2.3你的开发人员或团队的优势和劣势在于什么?
2.4如何在“高耦合性”还是“低耦合性”的框架中做出选择?
3目前主流的开发框架
3.1OpenbizCubiPHP开发框架
3.2CakePHP开发框架
3.3ZendFramework框架
3.4CodeIgniter
3.5Symfony
3.6YiiFramework
框架发展背景
毫无疑问,Web框架技术在近几年已经得到了突飞猛进的发展和普及,在过去几年里,框架技术的普遍经历了比较大的完善过程,很大一部分可以归因于RubyonRails,以及在其他编程语言中流露出的MVC框架思想。
如果你是一个PHP忍者,而不是一个铁杆的Ruby追随者,你也许会惊奇市面上已经有这么多的框架,哪一个才是适合你的。当然回答和个问题取决于的诸多因素,今天我们将会回顾一下这个典型的问题,如何为你的下一个应用系统选择适合你的PHP框架。
同时我们也来看一下比较流行的PHP框架,比较一下他们的区别,这样可以帮你自己做出明智的选择,找到最适合你项目的框架,
明确你的需求
在你决定为你的项目选择一个框架之前,你当先理解需要,需求和了解一些开发团队幕后的工作,我们总结出了如下几个问题,在开始下一步之前你可以试着问问自己。
你的应用程序主要集中于解决哪些问题?
你的应用可以是一个电子商务平台,一个社交网站,消息共享平台或者活动目录,举例来说,如果你正在构建一个电子商务网站,你也许更希望选用一些具有用于处理信用卡和交易会话的成熟的扩展函数库的框架。另一方面,如果是一个轻量级的消息平台(比如说微博类系统),则你也许更应该注重快速的扩展和跨服务器跨数据的支撑访问能力,为了实现负载均衡和快速连接访问。
你的主机运行环境将是什么?
有些特殊的框架会需要试用到一些非默认的其它PHP扩展或者软件安装在服务器上,比如,有些框架的数据抽象层必须要求通过PDO来实现访问,而非直接调用更底层的MySQL或MySQLi,或者有些类似wiki类的程序的图像压缩和处理功能往往需要使用到ImageMagick或Graphiviz这些外部程序。而这些扩展也许并不会被所有的共享主机环境(虚拟主机)支持,此外即便是一个轻量级的小型框架,而且自我集成了所有所需的函数库并且也具有良好的可移植性和适应性,这样的框架应用在处理数据密集型的操作或者大型数据处理的系统时,性能又会成为它的主要瓶颈。
你的开发人员或团队的优势和劣势在于什么?
如果你是个项目经理,一个重要的事情是了解清楚你的具体开发人员他们的能力和弱势,因为他们是真的闷头干活儿人,所以也许你可以选择一些更加面向开发人员友好的容易上手的框架。当然这个问题的也许并不是影响决定是否采用一个框架的决定性因素(不断地要求自己和团队学习新的技术总是好的),但着绝对是一个会影响到你的时间表、预算和安全等多方面因素的重要考量条件。
如何在“高耦合性”还是“低耦合性”的框架中做出选择?
如果从框架产品自身的耦合性来将目前主流的php框架产品分为高耦合性和低耦合性两类。低耦合性的框架看起来更像是一个丰富的函数库和逻辑封装的抽象层,甚至有些好的框架自身就是PHP的一个高级扩展组件,比如PDO,它绝对算得上是一个数据访问的框架也是抽象层。还有一些其他值得一提的低耦合性框架,比如ZendFramework,CakePHP,以及国内开发的ThinkPHP都属于这个范畴。如果你将接手的项目历史问题比较多,并且对UI的自定义比较高,你恐怕需要一个低耦合性的框架来满足你灵活的需求。
另一方面是一些高耦合性框架的代表,比如一些由CRM衍生而来框架类似Drupal,Joomla,还有直接就是为了高耦合性而开发的OpenbizCubi框架,国内小范围流行的框架还有普元等。这些框架的最优秀的特点是可以让你完全只集中于实现你的核心业务逻辑,你甚至
不用去管如何实现UI和用户会话管理这些基础特性,你只需要把你的代码和它们提供的接口规范进行“连接”就可以了。如果你负责的项目是一个新的项目,你肯定不希望把大部分的时间都花在实现基础业务逻辑上,比如可能是为客户公司开发一套“停车场管理系统”,还是选择类似OpenbizCubi这样的框架,在其之上直接去实现你的业务逻辑是最对得起你的时间预算和投资回报率的。
目前主流的开发框架
现在我们已经对你将要开发的应用程序和你的开发团队有了足够的了解和认识,那么接下来让我们来测试几款比较流行的框架和他们所能提供给我们的功能特性吧。
OpenbizCubiPHP开发框架
官方网址:http://openbiz.me/
下载地址:http://openbiz-cubi.googlecode.com/files/Openbiz-Cubi-Suite-3.0.7.exe
这显然是一个高耦合性的框架的代表,有点让开发人员“拎包入住”快捷酒店一样的的感觉。OpenbizCubi是一个应用平台式的开发框架。虽然与众多更加耳熟能详的框架相比OpenbizCubi仍然是一匹黑马,但是还是一个十分值得推荐的框架。它自身基于ZendFramework构建,但是拥有自己独特的基于元数据的MVC和ORM逻辑,并采用Smarty和PHP模板作为主要UI的模板引擎,所以如果你是Zend框架的玩家,别担心,OpenbizCubi的代码也会同样让你很容易上手。
它不同于其他传统意义上的PHP框架,它具有一个类似JAVA的元数据引擎,可以通过XML的方式来“描述”大多数对象,甚至通过XML的描述就可以实现数据的CRUD(增删读改)这些操作。如果你的业务需求仅仅是要实现一些简单的数据CRUD操作,你甚至不需要去写什么PHP代码,XML就可以全部搞定。而你的PHP功夫可以通过他的Plugin-Service方式用于集中在实现某些特殊的业务逻辑上。
OpenbizCubi目前还有一个叫做OpenbizAppbuilder的超级好用的代码生成工具,对于还不熟Openbiz的XML元数据的开发人员来说,Appbuilder绝对是一个可以帮助你快速上手的利器,他通过图形界面的生成向导来帮你自动创建数据对象、表单对象、嵌入式服务,甚至整个应用程序的雏形。按Openbiz的官方介绍来说,你只需要思考清楚你的应用程序的业务逻辑,剩下的代码工作就交给OpenbizAppbuilder来帮你搞定吧。
CakePHP开发框架
官方网址:http://cakephp.org/
下载地址:https://github.com/cakephp/cakephp/archive/2.3.0-RC2.tar.gz

如果你仍然需要编写面向PHP4兼容的代码,CakePHP将是一个非常不错的选择,在PHP4&5的MVC式框架列表里面,CakePHP都曾经是最流行的。它还提供了很多种途径的技术支持(讨论组、留言板、IRC等)还有优秀的教程。CackePHP是个很容易上手的框架,但是你并不容易在短短几周的时间就完全掌握它。
ZendFramework框架
官方网址:http://framework.zend.com
下载地址:http://www.zend.com/en/download/633

ZendFramework是面对一些较有经验的开发者和从底层构建一些企业级应用程序而设计的。(例如宣称面向企业应用而设计的OpenbizCubi就是基于ZendFramework框架之上而构建的。)该框架是高度模块化的。这意味着你可以按你的实际需要来引用Zend的代码。有些函数库甚至可以很容的被提取出来单独使用(例如Zend_Gdata,这也是个低耦合性的特点)使用Zend框架,你不必非要遵从它的MVC架构,(虽然你最好能这么做),并且它还提供了许多内建的高级功能用于完成与现有的web服务整合,多语言化和实现单元测试这些任务,
CodeIgniter
官方网址:http://codeigniter.org.cn
下载地址:http://codeigniter.org.cn/download

CodeIgniter是一个PHP5.2+的MVC框架,它体积小巧切具有丰富的文档资源。通常被称为“初学者框架”,因为它相对容易试用和较短的学习曲线,此外CodeIgniter也是十分灵活和强大的。该框架拥有一个非常庞大的社区支持。并且在社区里面很容易找到大量的CI函数库,你可以大胆的梦想,也许你正需要做的事情在社区的某个交流,某个人已经把它实现了。
Symfony
官方网址:http://symfony.com/
下载地址:http://symfony.com/download

作者:楚怡、凯衡等近日,美团视觉智能部研发了一款致力于工业应用的目标检测框架YOLOv6,能够同时专注于检测的精度和推理效率。在研发过程中,视觉智能部不断进行了探索和优化,同时吸取借鉴了学术界和工业界的一些前沿进展和科研成果。在目标检测权威数据集COCO上的实验结果显示,YOLOv6在检测精度和速度方面均超越其他同体量的算法,同时支持多种不同平台的部署,极大简化工程部署时的适配工作。特此开源,希望能帮助到更多的同学。1.概述YOLOv6是美团视觉智能部研发的一款目标检测框架,致力于工业应用。

5月2日消息,目前大多数AI聊天机器人都需要连接到云端进行处理,即使可以本地运行的也配置要求极高。那么是否有轻量化的、无需联网的聊天机器人呢?一个名为MLCLLM的全新开源项目已在GitHub上线,完全本地运行无需联网,甚至集显老电脑、苹果iPhone手机都能运行。MLCLLM项目介绍称:“MLCLLM是一种通用解决方案,它允许将任何语言模型本地部署在一组不同的硬件后端和本地应用程序上,此外还有一个高效的框架,供每个人进一步优化自己用例的模型性能。一切都在本地运行,无需服务器支持,并通过手机和笔

作为一个技术博主,了不起比较喜欢各种折腾,之前给大家介绍过ChatGPT接入微信,钉钉和知识星球(如果没看过的可以翻翻前面的文章),最近再看开源项目的时候,发现了一个ChatGPTWebUI项目。想着刚好之前没有将ChatGPT接入过WebUI,有了这个开源项目可以拿来使用,真是不错,下面是实操的安装步骤,分享给大家。安装官方在Github的项目文档上提供了很多中的安装方式,包括手动安装,docker部署,以及远程部署等方法,了不起在选择部署方式的时候,一开始为了简单想着

深度推荐模型(DLRMs)已经成为深度学习在互联网公司应用的最重要技术场景,如视频推荐、购物搜索、广告推送等流量变现业务,极大改善了用户体验和业务商业价值。但海量的用户和业务数据,频繁地迭代更新需求,以及高昂的训练成本,都对 DLRM 训练提出了严峻挑战。在 DLRM 中,需要先在嵌入表(EmbeddingBags)中进行查表(lookup),再完成下游计算。嵌入表常常贡献 DLRM 中 99% 以上的内存需求,却只贡献 1% 的计算量。借助于 GPU 片上高速内存(High Bandwidth

在人类的感官中,一张图片可以将很多体验融合到一起,比如一张海滩图片可以让我们想起海浪的声音、沙子的质地、拂面而来的微风,甚至可以激发创作一首诗的灵感。图像的这种「绑定」(binding)属性通过与自身相关的任何感官体验对齐,为学习视觉特征提供了大量监督来源。理想情况下,对于单个联合嵌入空间,视觉特征应该通过对齐所有感官来学习。然而这需要通过同一组图像来获取所有感官类型和组合的配对数据,显然不可行。最近,很多方法学习与文本、音频等对齐的图像特征。这些方法使用单对模态或者最多几种视觉模态。最终嵌入仅

自从Midjourney发布v5之后,在生成图像的人物真实程度、手指细节等方面都有了显著改善,并且在prompt理解的准确性、审美多样性和语言理解方面也都取得了进步。相比之下,StableDiffusion虽然免费、开源,但每次都要写一大长串的prompt,想生成高质量的图像全靠多次抽卡。最近StabilityAI的官宣,正在研发的StableDiffusionXL开始面向公众测试,目前可以在Clipdrop平台免费试用。试用链接:https://clipdrop.co/stable-diff

刚刚,哥伦比亚大学系统生物学助理教授 Mohammed AlQuraishi 在推特上宣布,他们从头训练了一个名为 OpenFold 的模型,该模型是 AlphaFold2 的可训练 PyTorch 复现版本。Mohammed AlQuraishi 还表示,这是第一个大众可用的 AlphaFold2 复现。AlphaFold2 可以周期性地以原子精度预测蛋白质结构,在技术上利用多序列对齐和深度学习算法设计,并结合关于蛋白质结构的物理和生物学知识提升了预测效果。它实现了 2/3 蛋白质结构预测的卓

细粒度图像识别 [1] 是视觉感知学习的重要研究课题,在智能新经济和工业互联网等方面具有巨大应用价值,且在诸多现实场景已有广泛应用…… 鉴于当前领域内尚缺乏该方面的深度学习开源工具库,南京理工大学魏秀参教授团队用时近一年时间,开发、打磨、完成了 Hawkeye——细粒度图像识别深度学习开源工具库,供相关领域研究人员和工程师参考使用。本文是对 Hawkeye 的详细介绍。1.什么是 Hawkeye 库Hawkeye 是一个基于 PyTorch 的细粒度图像识别深度学习工具库,专为相关领域研究人员和


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.
