帮忙从易用性,拓展性分析下
回复内容:
你问 ThinkPHP 适不适合(零基础)速成找工作,没问题;你问 ThinkPHP “好不好”,也就算了。和 Django 对比,还有人觉得 ThinkPHP 好,我真的要出来说一句了—— 技术角度上,ThinkPHP 无论如何也配不上和 Django 对比。ThinkPHP 的代码质量非常一般,风格尤其糟糕——大量单字母命名、全局函数、全局变量(还有组合体——单字母全局函数)、滥用 GET / POST 数组……比如想象一下表单里用了个单字母的key(出于混淆或压缩 URL 的目的),结果行为莫名其妙,最后发现这玩意儿竟然是框架默认的全局 GET 参数之一……最关键的是,这些还是他们引以为豪的特性!暴露给开发者的公开接口都这样了,框架内部就更不用说——随处可见“缩行”神技、没有统一的代码规范、对 PHP 的类型转换带来的坑不注意规避……
安全方面也尤为堪忧。且不说编码质量导致的细节漏洞,整个 SQL query builder 的设计简直令人吓掉下巴!最早我也没关注,还觉得作为一个现代框架(ThinkPHP 3.X),善用 prepared statement 、 parameterized query 应该是基本的,有可能的话还应该做好类型绑定(尤其在动态语言里),然而……直到我看到乌云上接二连三的爆出 ThinkPHP 的 SQL 注入漏洞(现在应该有很多都已经公开细节了,可以自己去搜搜看),修了一个甚至还间接导致 regression 出了个新的,觉得一个框架怎么这么容易被注入,我才去看了一眼那几个修复的 patch 以及整个 SQL 子系统,吓得我……官方甚至还有过类似“就是这么设计的”、应该开发者自己应对的回应——这话很多时候是对的,但我可一点也不觉得传任何值给 query builder (而且也没有强制使用“unsafe”之类的功能)导致注入是开发者应该应对的问题……
说到了 regression ,也就不得不提最关键的一点——测试在哪里?反正我是一点也不敢使用一个这么庞大却没有单元测试的框架的……( Knuth 的 TeX 都有测试呢……又不是编程之禅里的“大师”……)
另外有一个可以讨论的问题——升级。我是做过从 ThinkPHP 1.X 升到 2.X 再升到 3.X 的事情的。接口、行为甚至整个结构、模型都会变化,还记得升级文档是一份不厚的PDF,有很多细节没有完全覆盖到。和 Django 对比,即使是 Django 早期变化比较大的时期,也没觉得升级这么痛苦,大部分时候还会提前几个版本给 deprecated 警报……更不用说 Django 最近很长一段时间的升级都比较平滑了,这也和其架构合理有关。当然你也可以支持这种破坏性比较大的升级,前提是你愿意花时间跟进大版本,否则老版本最后总是会没有安全支持的——看看现在多少旧版本的 ThinkPHP 站点被脚本小子拿来玩?
ThinkPHP 也是有“优势”的,从上至下全中文——注释、commit message、文档、社区……真的几乎一句英文也没有(当然抛开代码),想要也没有,扫清了需要学英语这一大障碍。
我认为,只有出于历史原因被迫(虽然这种情况下我强烈建议换工作)或者技校速成,其他情况下别碰这个大坑。讨论“框架优劣”的话,也是 Laravel、Symfony 之类的 vs Django 更有意义。
Update (a.k.a. off-topic):
有不少人提到 CodeIgniter ,也是我用过的第一个框架,同时也是我读过的代码比例最高的一个PHP框架。中肯地说 CodeIgniter 的设计、架构乃至代码质量都是不错的,文档也很易懂。不过不论如何 CodeIgniter 的定位和 ThinkPHP 这类完全不同,就是一个轻量级的框架,最重要的区别之一在于数据层抽象非常简单。更不幸的是其开发停滞了很长一段时间,尤其是在 PHP 5.3 之后没能跟上(不但没有使用新特性,而且还存在兼容问题)……不推荐在新项目中使用 2.x 的 CodeIgniter ( PHP 5.3 之后有太多重要的新特性了)。至于前段时间 CodeIgniter 转让给了我这儿的一所 college (BCIT)来维护,推出了 3.x 版,没有用过就不评论了。
还有一个曾经很喜欢的框架是 CakePHP ,代码规范、测试完整、团队活跃,很喜欢它的数据模型,算是少数几个 ORM 做得不错的 PHP 框架了,调试功能也很强大,再加上自动生成代码和数据库等“scaffolding”功能,可以说是比较接近 Django 。然而可惜的是,我最喜欢的 data model 部分在 2.x 版本的实现有问题——历史包袱沉重、逻辑过度复杂,导致在极端情况下(例如复杂的层叠、链接)出现 bug ,而且很难修;我花过时间查 bug 、试图修复、也和 CakePHP 团队讨论了,最后认为很难在不破坏兼容性的情况下完全修复,所以留在了 3.x 版本里重构整个 data model 系统。如今 3.0 好像已经出来了,不过我仍然没用过……
Laravel 太新、 Symfony 太重,所以这两个其实我也是没用过的;Yaf 完全就是不同的方向了。 拖拉机和车的区别..
过不 国内很多项目的开发环境 就是农田... 下面数据的时间点是 20150818


Django


完全没有可比性,think php 不支持 pdo(sql 注入的风险),不支持命名空间, 据说新版本改了,以这种跟进速度,我就不吐槽了 laravel 飘过 PHP 框架 ,国内用的多的应该是YII吧 忽略语言本身你谈个P啊?框架的很多特性就是基于语言特性的。 ThinkPHP早就停止更新了,所以喜欢用ThinkPHP的人还是早点换http://asp.net吧~
国内很多人喜欢用着几百年前都已经过时的东西,比方说ThinkPHP或者是PHPWind,这样不好,项目组选框架的时候一定要找有人维护的框架,要不GitHub提一个pull request都没人理,多闹心~
Django也是一个挺好的框架,适合初学者 我没有用过TP,但是就我使用TP与YII2的经验而言。。我不喜欢TP。
= =我看到TP里面的全局函数 M函数 D函数 就感觉恶心(我是一个面向对象思维者) 阿诺,PHP不是最好的语言吗? 只说TP学的蛮快,1上午

종종 키워드와 추적 매개 변수로 혼란스러워하는 긴 URL은 방문자를 방해 할 수 있습니다. URL 단축 스크립트는 솔루션을 제공하여 소셜 미디어 및 기타 플랫폼에 이상적인 간결한 링크를 만듭니다. 이 스크립트는 개별 웹 사이트 a에 유용합니다

Instagram은 2012 년 Facebook에서 유명한 인수에 이어 타사 사용을 위해 두 개의 API 세트를 채택했습니다. Instagram Graph API 및 Instagram Basic Display API입니다. 개발자는

Laravel은 직관적 인 플래시 방법을 사용하여 임시 세션 데이터 처리를 단순화합니다. 응용 프로그램에 간단한 메시지, 경고 또는 알림을 표시하는 데 적합합니다. 데이터는 기본적으로 후속 요청에만 지속됩니다. $ 요청-

이것은 Laravel 백엔드가있는 React Application을 구축하는 데있어 시리즈의 두 번째이자 마지막 부분입니다. 이 시리즈의 첫 번째 부분에서는 기본 제품 목록 응용 프로그램을 위해 Laravel을 사용하여 편안한 API를 만들었습니다. 이 튜토리얼에서는 Dev가 될 것입니다

Laravel은 간결한 HTTP 응답 시뮬레이션 구문을 제공하여 HTTP 상호 작용 테스트를 단순화합니다. 이 접근법은 테스트 시뮬레이션을보다 직관적으로 만들면서 코드 중복성을 크게 줄입니다. 기본 구현은 다양한 응답 유형 단축키를 제공합니다. Illuminate \ support \ Facades \ http를 사용하십시오. http :: 가짜 ([ 'google.com'=> 'Hello World', 'github.com'=> [ 'foo'=> 'bar'], 'forge.laravel.com'=>

PHP 클라이언트 URL (CURL) 확장자는 개발자를위한 강력한 도구이며 원격 서버 및 REST API와의 원활한 상호 작용을 가능하게합니다. PHP CURL은 존경받는 다중 프로모토콜 파일 전송 라이브러리 인 Libcurl을 활용하여 효율적인 execu를 용이하게합니다.

고객의 가장 긴급한 문제에 실시간 인스턴트 솔루션을 제공하고 싶습니까? 라이브 채팅을 통해 고객과 실시간 대화를 나누고 문제를 즉시 해결할 수 있습니다. 그것은 당신이 당신의 관습에 더 빠른 서비스를 제공 할 수 있도록합니다.

2025 PHP Landscape Survey는 현재 PHP 개발 동향을 조사합니다. 개발자와 비즈니스에 대한 통찰력을 제공하는 프레임 워크 사용, 배포 방법 및 과제를 탐색합니다. 이 조사는 현대 PHP Versio의 성장을 예상합니다


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
