2014年辛星starphp第一节设置入口文件以及App类
*********************本节目标****************
1.首先是我们的框架大致布局,我们即将写成的这个框架,它的入口文件统一为star.php,它需要做的一些事,比如加载配置项,日志文件什么的日后再说,首先确定一下它的目录结构,它的目录结构是如下的样子:
|---------star| |------------core:核心类库| | |---------------app.php| | |---------------model.php| | |---------------controller.php| | |----------------view.php| | |-----------------fun.php| || |-------------common:函数库| |-------------class:类库| |-------------extends:其他类库| |--------------star.php||-----------app它的文件目录为| |------------遵循模块/控制器/方法的格式| |------------index.php||------------adimin|2.我们今天先写这个star.php文件,它是统一的入口文件,首先我们必须定义一个index.php,它的文件内容如下:
<?php //定义它是从首页进入的define('INDEX',True);//包含该核心文件define('__ROOT__',__DIR__);include __ROOT__.'/star/star.php';
3.然后我们书写star.php的内容,它能够引导找到App类,并且调用App类的run方法来使程序运行下去,它的代码:
<?php //定义版本信息define("VERSION","0.1");//控制PHP版本if(phpversion() <'5.3'){ exit("版本太低不支持");} //表示路径分隔符define("DS",DIRECTORY_SEPARATOR);//这个STAR表示我们的star目录if(!defined("STAR")){define("STAR",__DIR__);}//定义应用程序目录,if(! defined("APP")){define("APP",__ROOT__.DS."app");}if(! defined("CORE")){define("CORE",STAR.DS."core");}//导入应用程序控制文件 include STAR.DS."core".DS."app.php";//导入核心文件include CORE.DS."fun.php";$app = new App();$app->run();4.然后我们写这个App类,它应该能够完成对URL的解析,这里我们还没有设置配置文件,因此我们的URL统一使用PATHINFO模式,而且路径分隔符统一用斜线,而且我们的url的文件名的后部分是按照”模块/控制器/方法/参数1/值1/参数2/值2...."的方式去写的,因此,我们的app.php文件如下:
<?php /***该类用于统一处理所有的信息**/if(!defined("STAR")) die("系统错误");include STAR.DS."core".DS."controller.php";class App{ //模块名 private $module = ""; //控制器 private $controller = ""; //方法名 private $method = ""; //参数名 private $param = array(); //参数个数 private $paramlength = 0; /** *用于解析控制器和方法 * */ public function __construct(){ //默认使用/来解析url $path = trim($_SERVER['PATH_INFO'],'/'); $path = explode('/',$path); var_dump($path); $paramlength =(count($path) - 3)/2; var_dump($paramlength); $this->paramlength = $paramlength; $module = array_shift($path);//模块名 $controller = array_shift($path);//控制器名 $method = array_shift($path);//方法名 var_dump($path); for($i = 0;$i param = $param; if($module ==""){$module = "index";} if($controller == ""){$controller = "Index";} if($method == ""){$method = "index";} $this->module = $module; $this->controller = $controller; $this->method = $method; //spl_autoload_register($this->loadcore); //自动根据解析的路由来执行 } /** *用于运行方法 * */ public function run(){ $controller = $this->controller; $module = $this->module; $dir = APP.DS.$module.DS."controller".DS."$controller"."Controller.php"; include "$dir"; $controllerclass = $controller."Controller"; $class = new $controllerclass(); $method = $this->method; $param = $this->param; $length = $this->paramlength; if(is_int($length) && ($length >= 1)){ $class->$method($param); }else{ $class->$method(); } } /** * * */ }5.我们还需要在core文件夹的fun.php文件中添加一些代码,它有一个star_arr_safe函数用来对数组进行过滤,来防止非法注入,它的内容如下:
<?php /***用于过滤用户输入信息的函数*它主要是防止sql注入*也需要防范html实体*/function star_arr_safe($array){ if(is_array($array)){ $count = count($array); for($i = 0;$i< $count;$i ++){ $array[$i] = htmlspecialchars($array[$i]); $array[$i] = addslashes($array[$i]); } } return $array; }
6.我们的Controller还没有实际的意义,但是为了能够起到形式上的作用,我们定义如下:
<?php /***该类用于解析url并且根据url来执行相关的方法**/if(!defined("STAR")) die("系统错误");class Controller{ }7.截至目前,我们先写这些代码。
*****************辅助工作***************
1.为了测试运行,我们在app目录下的controller目录下新建了一个MyController.php,它有一个index方法,我们这里给定如下:
<?phpif (!defined("STAR")) exit("Not Allowed");class MyController extends Controller{ public function index($arr){ echo "hello world"; var_dump($arr); }}2.该版本目前运行正常,版本号记为0.0.1,代码我上传到csdn的下载的地方:
点击打开链接 ,当然是面积分下载的。
3.该版本可以作为我日后的回忆,哈哈。

Session_SET_COOKIE_PARAMS () 함수를 통해 PHP에서 세션 쿠키 매개 변수 설정을 달성 할 수 있습니다. 1)이 기능을 사용하여 만료 시간, 경로, 도메인 이름, 보안 플래그 등과 같은 매개 변수를 설정하십시오. 2) call session_start ()를 호출하려면 매개 변수를 발효시킵니다. 3) 사용자 로그인 상태와 같은 요구에 따라 매개 변수를 동적으로 조정합니다. 4) 보안을 향상시키기 위해 안전하고 httponly 플래그 설정에주의를 기울이십시오.

PHP에서 세션을 사용하는 주요 목적은 다른 페이지간에 사용자의 상태를 유지하는 것입니다. 1) 세션은 Session_Start () 함수를 통해 시작되어 고유 한 세션 ID를 생성하고 사용자 쿠키에 저장합니다. 2) 세션 데이터는 서버에 저장되므로 로그인 상태 및 쇼핑 카트 컨텐츠와 같은 다른 요청간에 데이터를 전달할 수 있습니다.

하위 도메인 간의 세션을 공유하는 방법? 공통 도메인 이름에 대한 세션 쿠키를 설정하여 구현. 1. 세션 쿠키 도메인을 서버 측에서 .example.com으로 설정하십시오. 2. 메모리, 데이터베이스 또는 분산 캐시와 같은 적절한 세션 저장 방법을 선택하십시오. 3. 쿠키를 통해 세션 ID를 전달하면 서버는 ID를 기반으로 세션 데이터를 검색하고 업데이트합니다.

HTTP는 데이터 전송을 암호화하여 중간의 공격을 방지하고 인증을 제공함으로써 세션의 보안을 크게 향상시킵니다. 1) 암호화 된 데이터 전송 : HTTPS는 SSL/TLS 프로토콜을 사용하여 데이터를 암호화하여 전송 중에 데이터가 도난 당하거나 변조되지 않도록합니다. 2) 중간 공격 방지 : SSL/TLS 핸드 셰이크 프로세스를 통해 클라이언트는 서버 인증서를 확인하여 연결 정당성을 확인합니다. 3) 인증 제공 : HTTPS는 연결이 합법적 인 서버임을 보장하고 데이터 무결성과 기밀성을 보호합니다.

여전히 인기있는 것은 사용 편의성, 유연성 및 강력한 생태계입니다. 1) 사용 편의성과 간단한 구문은 초보자에게 첫 번째 선택입니다. 2) 웹 개발, HTTP 요청 및 데이터베이스와의 우수한 상호 작용과 밀접하게 통합되었습니다. 3) 거대한 생태계는 풍부한 도구와 라이브러리를 제공합니다. 4) 활성 커뮤니티와 오픈 소스 자연은 새로운 요구와 기술 동향에 맞게 조정됩니다.

PHP와 Python은 웹 개발, 데이터 처리 및 자동화 작업에 널리 사용되는 고급 프로그래밍 언어입니다. 1.PHP는 종종 동적 웹 사이트 및 컨텐츠 관리 시스템을 구축하는 데 사용되며 Python은 종종 웹 프레임 워크 및 데이터 과학을 구축하는 데 사용됩니다. 2.PHP는 Echo를 사용하여 콘텐츠를 출력하고 Python은 인쇄를 사용합니다. 3. 객체 지향 프로그래밍을 지원하지만 구문과 키워드는 다릅니다. 4. PHP는 약한 유형 변환을 지원하는 반면, 파이썬은 더 엄격합니다. 5. PHP 성능 최적화에는 Opcache 및 비동기 프로그래밍 사용이 포함되며 Python은 Cprofile 및 비동기 프로그래밍을 사용합니다.

PHP는 주로 절차 적 프로그래밍이지만 객체 지향 프로그래밍 (OOP)도 지원합니다. Python은 OOP, 기능 및 절차 프로그래밍을 포함한 다양한 패러다임을 지원합니다. PHP는 웹 개발에 적합하며 Python은 데이터 분석 및 기계 학습과 같은 다양한 응용 프로그램에 적합합니다.

PHP는 1994 년에 시작되었으며 Rasmuslerdorf에 의해 개발되었습니다. 원래 웹 사이트 방문자를 추적하는 데 사용되었으며 점차 서버 측 스크립팅 언어로 진화했으며 웹 개발에 널리 사용되었습니다. Python은 1980 년대 후반 Guidovan Rossum에 의해 개발되었으며 1991 년에 처음 출시되었습니다. 코드 가독성과 단순성을 강조하며 과학 컴퓨팅, 데이터 분석 및 기타 분야에 적합합니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

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

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

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

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

드림위버 CS6
시각적 웹 개발 도구
