ThinkPHP第二课 框架MVC目录和URL访问方式
第二课 框架MVC目录和URL访问方式
1.说明:
ThinkPHP是基于MVC的框架,认识框架目录将更好的实现分层,掌握ThinkPHP。URL访问就是访问框架的控制器(MVC中的C),共有四种方式,框架中的C起到分模块的作用。
url的4种访问方式:
1.PATHINFO 模式 -- 重点!!!!!!
http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值2
2.普通模式
http://域名/项目名/入口文件?m=模块名&a=方法名&键1=值1&键2=值2
3.REWRITE模式
http://域名/项目名/模块名/方法名/键1/值1/键2/值2
4.兼容模式
http://域名/项目名/入口文件?s=模块名/方法名/键1/值1/键2/值2
2.核心内容:
一.ThinkPHP框架对应MVC目录
V(视图层):thinkphp\Home\Tpl
M(模型层):thinkphp\Home\Lib\Model
C(控制器):thinkphp\Home\Lib\Action
二.URL访问方式(4种)
(1)入口文件全名+控制器类前缀名+控制器核心方法名
thinkphp/index.php/Index/index(PATHINFO方式)
(2)普通模式
(3)REWRITE模式
(4)兼容模式
三.应用配置
3.工程实例:
传参访问控制器实例(键值对)
4.文件路径:
5.遇到的问题:
6.文档:
ThinkPHP之config.php详细配置文件介绍
return array(
//模版配置
//------------------------------------------------------------------------------
"TMPL_DETECT_THEME" => false , //自动侦测模板主题
"TMPL_TEMPLATE_SUFFIX"=>'.html', //默认模板文件后缀
"TMPL_CACHFILE_SUFFIX"=>'.php', //默认模板缓存后缀
"TMPL_PARSE_STRING" => '', //模板引擎要自动替换的字符串,必须是数组形式。例如 array('__MYPATH__'=>Lib_PATH,...)
"TMPL_ACTION_ERROR" =>'Public:error', //错误跳转模板文件
"TMPL_ACTION_SUCCESS" =>'Public:success', //成功跳转模板文件
"TMPL_TRACE_FILE" =>THINK_PATH.'/Tpl/PageTrace.tpl.php', //页面Trace的模板文件
"TMPL_EXCEPTION_FILE" =>THINK_PATH.'/Tpl/ThinkException.tpl.php', //异常页面的模板文件
"TMPL_ENGINE_TYPE" => 'Think', //默认模板引擎
//以下设置仅对使用Think模板引擎有效
"TMPL_DENY_FUNC_LIST" =>'echo,exit', //模板引擎禁用函数
"TMPL_L_DELIM" =>'{', //模板引擎普通标签开始标记
"TMPL_R_DELIM" =>'}', //模板引擎普通标签结束标记
"TMPL_VAR_IDENTIFY" =>'array', //模板变量识别 留空自懂判断 array 数组 obj 对象
"TMPL_FILE_DEPR" =>'/', //模板文件MODULE_NAME不ACTION_NAME之间的分割符,只对项目分组部署有效
"TMPL_STRIP_SPACE" =>false, //是否去除模板文件里面癿html空格不换行
"TMPL_CACHE_ON" =>true, //默认开启模板编译缓存 false 的话每次都重新编译模板
"TMPL_CACHE_TIME" => -1, //模板缓存有效期 -1 永久 单位为秒
"TAGLIB_BEGIN" =>'标签库标签开始标记
"TAGLIB_END" =>'>', //标签库标签结束标记
"TAGLIB_BUILD_IN" =>'cx', //内置标签库名称 可以添加自己的标签库,多个使用逗号分隔
"TAGLIB_PRE_LOAD" =>'', //预先加载的标签库,无需在每个模板使用 taglib标签加载, 多个使用逗号分隔
"TAG_NESTED_LEVEL" =>3 //标签嵌套级别
//-------------------------------------------------------------------------
//应用配置
//------------------------------------------------------------------------------
"APP_GROUP_DEPR" =>'.', //模块分组之间的分割符
"APP_GROUP_LIST" =>'', //项目模块分组列表,多个组之间用逗号分隑,例如 'Admin,Home'
"APP_CONFIG_LIST" =>array('taglibs','routes','tags','htmls','modules','actions'), //项目扩展配置文件列表
"APP_DOMAIN_DEPLOY" =>false, //是否使用独立域名部署项目,只有在项目目录本身就是网站根目录的情况下开启
//-------------------------------------------------------------------------
//URL配置
//------------------------------------------------------------------------------
"URL_MODEL" =>1, //URL模式: 0 普通模式 1 PATHINFO 2 REWRITE 3 兼容模式 当URL_DISPATCH_ON开启后有效
//默认为PATHINFO 模式,提供最好的用户体验和 SEO支持
"URL_PATHINFO_MODEL" =>2, //PATHINFO 模式,默认采用智能模式
//普通模式1 参数没有顺序/m/module/a/action/id/1
//智能模式2 制动识别模块和操作/module/action/id/1/ 或者 /module,action,id,1/...
"URL_PATHINFO_DEPR" =>'/', //PATHINFO参数之间分割号
"URL_ROUTER_ON" =>true, //是否开启URL路由
"URL_HTML_SUFFIX" =>'.av', //伪静态后缀设置,例如 .shtml
"URL_CASE_INSENSITIVE" =>false, //URL是否不区分大小写,默认区分大小写
//------------------------------------------------------------------------------
//日志配置
//------------------------------------------------------------------------------
"LOG_RECORD" =>false, //是否记录网站日志,默认不记录日志
"LOG_RECORD_LEVEL" =>array('EMERG','ALERT','CRIT','ERR'), //允许记录的日志级别
"LOG_FILE_SIZE" =>2097152, //日志文件大小限制, 针对文件方式的日志记录,超过会自动生成备份文件
//------------------------------------------------------------------------------
//错误配置
//------------------------------------------------------------------------------
"ERROR_MESSAGE" =>'您浏览的页面暂时发生了错误!请稍后再试~', //错误显示信息 非调试模式有效
"ERROR_PAGE" =>'', //错误定向页面,需要填写完整的URL地址
//------------------------------------------------------------------------------
//数据库配置
//------------------------------------------------------------------------------
"DB_CHARSET" =>'utf8', //数据库编码,默认采用 utf8
"DB_DEPLOY_TYPE" =>0, //数据库部署方式 :0 集中式(单一朋务器) 1 分布式(主从朋务器)
"DB_RW_SEPARATE" =>false, //数据库读写是否分离,分布式数据库方式下面有效
"DB_FIELDS_CACHE" =>true, //开启数据表字段缓存
"DB_TYPE" =>'mysql', //数据库类型
"DB_HOST" =>'localhost', //数据库服务器地址
"DB_NAME" =>'', //数据库名称
"DB_USER" =>'root', //数据库用户名
"DB_PWD" =>'', //数据库 密码
"DB_PORT" =>3306, //数据库使用的端口
"DB_PREFIX" =>'think_', //数据库癿表前缀
"DB_SUFFIX" =>'', //数据库的表后缀
"DB_FIELDTYPE_CHECK" =>false, //是否迕行字段类型检查
//------------------------------------------------------------------------------
//静态缓存配置
//------------------------------------------------------------------------------
"HTML_FILE_SUFFIX" =>'.shtml', //默认静态文件后缀
"HTML_CACHE_ON" =>false, //默认关闭静态缓存
"HTML_CACHE_TIME" =>60, //静态缓存有效期
"HTML_READ_TYPE" =>1, //静态缓存读取方式 0 readfile 1 redirect
//------------------------------------------------------------------------------
//数据缓存配置
//------------------------------------------------------------------------------
"DATA_CACHE_TYPE" =>'File', //数据缓存类型 支持 File Db Apc Memcache Shmop Sqlite Xcache Apachenote Eaccelerator
"DATA_CACHE_PATH" =>TEMP_PATH //缓存路径设置 (仅对File方式缓存有效)
"DATA_CACHE_TIME" =>-1, //数据缓存有效期
"DATA_CACHE_COMPRESS" =>false, //数据缓存是否压缩缓存
"DATA_CACHE_CHECK" =>false, //数据缓存是否校验缓存
"DATA_CACHE_SUBDIR" =>false, //使用子目录缓存 (自动根据缓存标识的哈希创建子目录)
"DATA_PATH_LEVEL" =>1, //子目录缓存级别
//------------------------------------------------------------------------------
//运行时间配置
//------------------------------------------------------------------------------
"SHOW_RUN_TIME" =>false, //运行时间显示
"SHOW_ADV_TIME" =>false, //显示详细的运行旪间,SHOW_RUN_TIME开启后有效
"SHOW_DB_TIMES" =>false, //显示数据库读写次数
"SHOW_CACHE_TIMES" =>false, //显示缓存读写次数
"SHOW_USE_MEM" =>false, //显示内存开销
"SHOW_PAGE_TRACE" =>false, //显示页面Trace信息 由 Trace文件定义和Action操作赋值
"SHOW_ERROR_MSG" =>true, //发生错误时显示错误信息
//------------------------------------------------------------------------------
//Cookie设置
//------------------------------------------------------------------------------
"COOKIE_EXPIRE" =>3600, //Coodie有效期
"COOKIE_DOMAIN" =>'', //Cookie有效域名
"COOKIE_PATH" =>'/', //Cookie路径
"COOKIE_PREFIX" =>'', //Cookie前缀 避免冲突
//-------------------------------------------------------------------------
//令牌验证配置
//------------------------------------------------------------------------------
"TOKEN_ON" =>true, //是否开启令牌验证
"TOKEN_NAME" =>'__hash__', //令牌验证的表单隐藏字段名称
"TOKEN_TYPE" =>'md5', //令牌验证哈希规则
//------------------------------------------------------------------------------
//默认值配置
//------------------------------------------------------------------------------
"DEFAULT_APP" =>'@', //默认模型类所在的项目名称 @ 表示当前项目
"DEFAULT_GROUP" =>'Home', //默认分组
"DEFAULT_MODULE" =>'Index', //默认模块名称
"DEFAULT_ACTION" =>'index', //默认操作名称
"DEFAULT_THEME" =>'default',//默认模板主题名称
"DEFAULT_LANG" =>'zh-cn', //默认语言
"DEFAULT_TIMEZONE" =>'PRC', //默认时区
"DEFAULT_AJAX_RETURN" =>'JSON', //AJAX 数据返回格式 JSON XML ...
"DEFAULT_CHARSET" =>'utf-8', //默认页面输出编码
//------------------------------------------------------------------------------
//系统变量配置
//------------------------------------------------------------------------------
//下面这些变量配置主要用于URL的特殊传值,在项目中的URL和表单参数尽量不要与之冲突,否则容易造成错误。
"VAR_PATHINFO" =>'s', //PATHINFO 兼容模式获取变量例如 ?s=/module/action/id/1
"VAR_GROUP" =>'g', //默认分组发量
"VAR_ROUTE" =>'r', //默认路由获取变量
"VAR_MODULE" =>'m', //默认模块获取变量
"VAR_ACTION" =>'a', //默认操作获取变量
"VAR_PAGE" =>'p', //默认分页跳转变量
"VAR_TEMPLATE" =>'t', //默认模板切换变量
"VAR_LANGUAGE" =>'l', //默认语言切换变量
"VAR_AJAX_SUBMIT" =>'ajax', //默认的AJAX提交变量
//-------------------------------------------------------------------------
//语言和时区
//------------------------------------------------------------------------------
"LANG_SWITCH_ON" => false //是否开启多语言功能,默认关闭
);
?>

PHP仍然流行的原因是其易用性、靈活性和強大的生態系統。 1)易用性和簡單語法使其成為初學者的首選。 2)與web開發緊密結合,處理HTTP請求和數據庫交互出色。 3)龐大的生態系統提供了豐富的工具和庫。 4)活躍的社區和開源性質使其適應新需求和技術趨勢。

PHP和Python都是高層次的編程語言,廣泛應用於Web開發、數據處理和自動化任務。 1.PHP常用於構建動態網站和內容管理系統,而Python常用於構建Web框架和數據科學。 2.PHP使用echo輸出內容,Python使用print。 3.兩者都支持面向對象編程,但語法和關鍵字不同。 4.PHP支持弱類型轉換,Python則更嚴格。 5.PHP性能優化包括使用OPcache和異步編程,Python則使用cProfile和異步編程。

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP在現代化進程中仍然重要,因為它支持大量網站和應用,並通過框架適應開發需求。 1.PHP7提升了性能並引入了新功能。 2.現代框架如Laravel、Symfony和CodeIgniter簡化開發,提高代碼質量。 3.性能優化和最佳實踐進一步提升應用效率。

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Atom編輯器mac版下載
最受歡迎的的開源編輯器