ThinkPHP学习(二)理清ThinkPHP的目录结构及访问规则,创建第一个控制器
ThinkPHP的目录结构
回顾上一篇的安装目录:
目录对应关系
F:\\PHP
├─index.php 入口文件
├─README.md README文件
├─Application 应用目录
├─Public 资源文件目录
└─ThinkPHP 框架目录
ThinkPHP 的目录结构非常清晰和容易部署。大致的目录结构如下,以项目为基础进行部署。
┎━ThinkPHP 框架系统目录
┃ ┝ ThinkPHP.php 系统公共文件
┃ ┝ Common 公共文件目录
┃ ┝ Tpl 框架系统模版目录
┃ ┝ Lang 系统语言包目录
┃ ┝ PlugIns 公共插件目录
┃ ┗ Lib 系统基类库目录
┃ ┝ Think 系统运行库(必须)
┃ ┝ Com 扩展类库包(非必须)
┃ ┗ ORG 扩展类库包(非必须)
┃
┝━Application 应用目录、项目目录
┃ ┝ index.php 项目入口文件(可任意放置)
┃ ┝ Cache 模版缓存目录
┃ ┝ Common 公共文件目录(非必须)
┃ ┝ Conf 项目配置目录
┃ ┝ Data 项目数据目录
┃ ┝ Html 静态文件目录(非必须)
┃ ┝ PlugIns 插件目录(非必须)
┃ ┝ Tpl 模版文件目录
┃ ┝ Lang 语言包目录(非必须)
┃ ┝ Logs 日志文件目录
┃ ┝ Temp 数据缓存目录
┃ ┗ Lib 应用类库目录
┃ ┝ Action 控制器(模块)类目录
┃ ┝ Model Model 类文件目录
┃ … 下面的应用目录可根据需要选择和定义
┃ ┝ Exception 异常类库目录
┃ ┝ Common 公共应用类目录
┃ ┗ Help 助手类目录
┃
┃…更多项目目录(和App 目录类似,每个项目采用独立目录,便于部署)
┃
┝━Public 网站公共目录(多项目公用)
┃ ┝ Js JS 类库目录(建议)
┃ ┝ Images 公共图像目录(建议)
┃ ┗ Uploads 公共上传目录(建议)
我的“F:\PHP\Application”目录下有个“home”目录,这是ThinkPHP自动生成的一个控制器,
主要文件是“F:\PHP\Application\Home\Controller\IndexController.class.php”,文件内容如下:
<?php // 本类由系统自动生成,仅供测试用途namespace Home\Controller;use Think\Controller;class IndexController extends Controller { public function Index(){ $this->show('<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微软雅黑"; color: #333;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px }</style><div style="padding: 24px 48px;"> <h1 id="">:)</h1> <p>欢迎使用 <b>ThinkPHP</b>!</p> </div><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script>','utf-8'); }}
在地址栏输入“http://localhost/index.php”,回车,看到的内容,就是这个文件中“Index”函数中的内容。
访问规则
就“home”目录下的控制器举例,您可以通过以下URL地址访问:
http://localhost/index.php
http://localhost/index.php/Home
http://localhost/index.php/Home/Index
http://localhost/index.php/Home/Index/Index
创建第一个控制器
在“F:\PHP\Application”目录下新建一个目录“Index”,偷个赖,把“F:\PHP\Application\Home”目录下的内容都复制
到“F:\PHP\Application\Index”目录下,打开“F:\PHP\Application\Index\Controller\IndexController.class.php”文件,
为了确定访问的确实是我们新加的内容,在“Index”函数中添加点东西,代码如下:
<?phpnamespace Index\Controller;use Think\Controller;class IndexController extends Controller { public function index(){ $this->show('//phpinfo();<br>'); $this->show('<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微软雅黑"; color: #333;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px }</style><div style="padding: 24px 48px;"> <h1 id="">:)</h1> <p>欢迎使用 <b>ThinkPHP aaaa</b>!</p> </div><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script>','utf-8'); $this->show('function index()<br>'); }}试试通过以下URL地址访问吧:
http://localhost/index.php/Index
http://localhost/index.php/Index/Index
http://localhost/index.php/Index/Index/Index

Thedifferencebetweenunset()andsession_destroy()isthatunset()clearsspecificsessionvariableswhilekeepingthesessionactive,whereassession_destroy()terminatestheentiresession.1)Useunset()toremovespecificsessionvariableswithoutaffectingthesession'soveralls

Stickysessionsensureuserrequestsareroutedtothesameserverforsessiondataconsistency.1)SessionIdentificationassignsuserstoserversusingcookiesorURLmodifications.2)ConsistentRoutingdirectssubsequentrequeststothesameserver.3)LoadBalancingdistributesnewuser

PHPoffersvarioussessionsavehandlers:1)Files:Default,simplebutmaybottleneckonhigh-trafficsites.2)Memcached:High-performance,idealforspeed-criticalapplications.3)Redis:SimilartoMemcached,withaddedpersistence.4)Databases:Offerscontrol,usefulforintegrati

Session in PHP is a mechanism for saving user data on the server side to maintain state between multiple requests. Specifically, 1) the session is started by the session_start() function, and data is stored and read through the $_SESSION super global array; 2) the session data is stored in the server's temporary files by default, but can be optimized through database or memory storage; 3) the session can be used to realize user login status tracking and shopping cart management functions; 4) Pay attention to the secure transmission and performance optimization of the session to ensure the security and efficiency of the application.

PHPsessionsstartwithsession_start(),whichgeneratesauniqueIDandcreatesaserverfile;theypersistacrossrequestsandcanbemanuallyendedwithsession_destroy().1)Sessionsbeginwhensession_start()iscalled,creatingauniqueIDandserverfile.2)Theycontinueasdataisloade

Absolute session timeout starts at the time of session creation, while an idle session timeout starts at the time of user's no operation. Absolute session timeout is suitable for scenarios where strict control of the session life cycle is required, such as financial applications; idle session timeout is suitable for applications that want users to keep their session active for a long time, such as social media.

The server session failure can be solved through the following steps: 1. Check the server configuration to ensure that the session is set correctly. 2. Verify client cookies, confirm that the browser supports it and send it correctly. 3. Check session storage services, such as Redis, to ensure that they are running normally. 4. Review the application code to ensure the correct session logic. Through these steps, conversation problems can be effectively diagnosed and repaired and user experience can be improved.

session_start()iscrucialinPHPformanagingusersessions.1)Itinitiatesanewsessionifnoneexists,2)resumesanexistingsession,and3)setsasessioncookieforcontinuityacrossrequests,enablingapplicationslikeuserauthenticationandpersonalizedcontent.


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

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Chinese version
Chinese version, very easy to use

Notepad++7.3.1
Easy-to-use and free code editor

Zend Studio 13.0.1
Powerful PHP integrated development environment

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

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.
