为什么使用框架 框架是什么

.框架帮组快速、稳定、高效搭建程序系统
.框架本身维护性、灵活性、适应客户需求方面得到最大化的增强
.注意力集中业务层面,无需关心程序的底层架构
.框架节省50-60%的工作量


项目开发中的问题
多人协作开发项目,分工合理、效率有提高 测试阶段 上线运行
项目维护、升级(单个人维护项目,十分困难,代码风格不一样)
项目稳定的运行阶段 项目停止运行 新人开发新项目
问题
.多人开发项目,分工不合理,(html   php   mysql)
.代码风格不一样,后期维护十分困难
.项目生命周期十分短,项目生命没有延续性,造成资源浪费、人员浪费
.项目不能很好适应客户需求,牵一发而动全身。


PHP市场认可的框架
.zendframework   zend php官方的框架,重量级(功能多)
.yii   美国华人开发的框架 重量级框架,纯OOP框架
.CI  CodeIgniter轻量级框架,开发速度快,部署灵活
.cakephp 外国框架,重量级,速度慢
.symfony 外国重量级框架
.ThinkPHP 轻量级 国人框架,入门容易


MVC 基于多层模型(M)、视图(V)、控制器(C)的设计模式
ORM 全功能和高性能的ORM支持,支持大部分数据库
模板引擎 内置了高性能的基于标签库和XML标签的编译型模板引擎
RESTFul 通过REST控制器扩展提供了RESTFul支持,打造全新的URL设计和访问体验
云平台 新浪SAE平台和百度BAE平台的强力支持,横跨性 和 平滑性 ,本地化开发调试及部署切换,打造全新的开发体验
CLI 基于命令行的应用开发
RPC  包括PHPRpc、HProse、jsonRPC和Yar在内远程调用解决方案
MongoDb 提供NoSQL的支持
缓存 提供了包括文件、数据库、Memcache、Xcache、Redis等多种类型的缓存
安全性 框架在系统层面提供了众多的安全特性,确保网站和产品安全无忧
XSS安全防护 表单自动验证 强制数据类型转换 输入数据过滤 表单令牌验证 防SQL注入 图像上传检测


PHP >= 5.6.0 / PDO PHP Extension / MBstring PHP Extension
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

Windows  运行 Composer-Setup.exe

composer config -g repo.packagist composer https://packagist.phpcomposer.com
composer create-project topthink/think tp5

目录名任意更改 ,当前目录下,最新版本的ThinkPHP ,这个目录就是应用根目录,更新

composer update topthink/framework

composer 安装的是最新的稳定版本,如果需要安装实时更新的版本(适合学习过程) 安装dev版本

composer create-project topthink/think=5.1.x-dev tp5

  • 应用项目 https://github.com/top-think/think

  • 核心框架 https://github.com/top-think/framework

git clone https://github.com/top-think/think tp5
git clone https://github.com/top-think/framework thinkphp

国内GIT仓库

应用项目:https://gitee.com/liu21st/thinkphp5.git
核心框架:https://gitee.com/liu21st/framework.git
应用项目:https://git.coding.net/liu21st/thinkphp5.git
核心框架:https://git.coding.net/liu21st/framework.git
git checkout 5.1
git pull

不在应用目录下执行git更新操作,最后一步验证是否正常运行在浏览器中输入地址

http://localhost/tp/public/

部署是绑定域名访问到public目录 确保其它目录不在WEB目录


thinkphp出现no input file specified
Fastcgi模式php不支持rewrite的目标网址的 PATH_INFO 解析
ThinkPHP运行在URL_MODEL=2时 出现 No input file specified  
修改网站目录的.htaccess文件
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
改为 RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
.htaccess的内容为:
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
</IfModule>