discuz의 코드 분석 및 학습 (4) 포럼 입구 파일
이것은 단지 실행 과정을 대략적으로 분석한 것입니다. 중요한 것은 mod 매개변수의 값을 얻고 그 값에 따라 컨트롤러를 로드하는 것입니다.
1) 애플리케이션 이름을 정의하고 필요한 두 파일을 로드합니다
<span>define</span>('APPTYPEID', 2<span>); </span><span>define</span>('CURSCRIPT', 'forum'<span>); </span><span>require</span> './source/class/class_core.php';<span>//</span><span>核心类</span> <span>require</span> './source/function/function_forum.php';<span>//</span><span>论坛函数库</span>
2) modarray 배열은 mod 값 범위를 제한합니다
<span>$modarray</span> = <span>array</span>('ajax','announcement','attachment','forumdisplay', 'group','image','index','medal','misc','modcp','notice','post','redirect', 'relatekw','relatethread','rss','topicadmin','trade','viewthread','tag','collection','guide'<span> ); </span><span>//</span><span>模块缓存列表,各个子数组分别表示各个模块要缓存的缓存项</span> <span>$modcachelist</span> = <span>array</span><span>( </span>'index' => <span>array</span>('announcements', 'onlinelist', 'forumlinks', 'heats', 'historyposts', 'onlinerecord', 'userstats', 'diytemplatenameforum'), 'forumdisplay' => <span>array</span>('smilies', 'announcements_forum', 'globalstick', 'forums', 'onlinelist', 'forumstick', 'threadtable_info', 'threadtableids', 'stamps', 'diytemplatenameforum'), 'viewthread' => <span>array</span>('smilies', 'smileytypes', 'forums', 'usergroups', 'stamps', 'bbcodes', 'smilies', 'custominfo', 'groupicon', 'stamps', 'threadtableids', 'threadtable_info', 'posttable_info', 'diytemplatenameforum'), 'redirect' => <span>array</span>('threadtableids', 'threadtable_info', 'posttable_info'), 'post' => <span>array</span>('bbcodes_display', 'bbcodes', 'smileycodes', 'smilies', 'smileytypes', 'domainwhitelist', 'albumcategory'), 'space' => <span>array</span>('fields_required', 'fields_optional', 'custominfo'), 'group' => <span>array</span>('grouptype', 'diytemplatenamegroup'),<span> );</span>
3) mod 매개변수가 비어 있거나 불법인 경우 표현식은 true가 되어 index 값이 반환됩니다
<span>$mod</span> = !<span>in_array</span>(C::app()-><span>var</span>['mod'], <span>$modarray</span>) ? 'index' : C::app()-><span>var</span>['mod'];
4) 초기화
<span>define</span>('CURMODULE', <span>$mod</span><span>); </span><span>//</span><span>var_dump(CURMODULE);</span> <span>$cachelist</span> = <span>array</span><span>(); </span><span>if</span>(<span>isset</span>(<span>$modcachelist</span>[CURMODULE])) {<span>//</span><span>如果当前缓存项存在的话,</span> <span>$cachelist</span> = <span>$modcachelist</span>[CURMODULE];<span>//</span><span>获取当前缓存组的缓存列表项</span> <span>$cachelist</span>[] = 'plugin'<span>; </span><span>$cachelist</span>[] = 'pluginlanguage_system'<span>; } </span><span>if</span>(C::app()-><span>var</span>['mod'] == 'group'<span>) { </span><span>$_G</span>['basescript'] = 'group'<span>; } C</span>::app()->cachelist = <span>$cachelist</span><span>; C</span>::app()->init();<span>//</span><span>初始化</span> <span> loadforum(); set_rssauth(); runhooks();</span>
5) 로드 컨트롤러
<span>$navtitle</span> = <span>str_replace</span>('{bbname}', <span>$_G</span>['setting']['bbname'], <span>$_G</span>['setting']['seotitle']['forum'<span>]); </span><span>$_G</span>['setting']['threadhidethreshold'] = 1<span>; </span><span>//</span><span>var_dump($mod);</span> <span>require</span> DISCUZ_ROOT.'./source/module/forum/forum_'.<span>$mod</span>.'.php';
위 내용을 포함하여 discuz(4)의 코드 분석 및 학습을 위한 포럼 입구 파일을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

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

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

뜨거운 주제











OpenIV는 GTA(Grand Theft Auto) 시리즈 게임에서 주로 사용되는 인기 있는 게임 수정 도구입니다. 모드를 사용하면 새로운 기능을 추가하고 게임 경험을 향상시킬 수 있지만 때로는 여러 가지 이유로 설치된 모드를 삭제해야 할 수도 있습니다. 이 기사에서는 OpenIV를 사용하여 모드를 제거하는 방법을 설명합니다. 먼저 OpenIV 도구가 설치되어 있는지 확인하십시오. 아직 설치하지 않은 사용자는 OpenIV 공식 홈페이지(https://www.ope)에서 다운로드 받으실 수 있습니다.

Cyberpunk 2077의 뛰어난 기능 중 하나는 경로 추적이지만 성능에 큰 타격을 줄 수 있습니다. RTX 4080(Amazon에서 Gigabyte AERO OC 현재 $949.99)과 같이 합리적인 성능의 그래픽 카드를 갖춘 시스템조차도 안정적인 그래픽 카드를 제공하는 데 어려움을 겪고 있습니다.

이번 달 초 HowToMen이라는 YouTube 사용자는 Android를 실행하는 Rabbit R1을 선보였습니다. 이 모드를 사용하면 원래 휴대폰보다 덜 산만하도록 의도된 장치가 휴대폰처럼 작동하게 되었습니다. 하지만 그것은 나쁜 것이 아닙니다. Rabbit은 그렇지 않았습니다.

Asus ROG Ally에는 40Wh 배터리가 탑재되어 있으며 일반적으로 약 2시간의 런타임이 소요됩니다. 그러나 Ally X에서 Asus는 배터리를 80Wh로 업그레이드하여 TDP에 따라 배터리 수명을 약 4시간으로 늘렸습니다. iFixit이 내놓은

Grand Theft Auto V와 같은 게임을 플레이할 때 많은 플레이어는 게임의 재미와 플레이 가능성을 높이기 위해 모드를 사용하는 것을 좋아합니다. 잘 알려진 Mod 관리 도구인 OpenIV는 Mod 설치 및 관리 프로세스를 단순화할 수 있습니다. 그럼 OpenIV에 Mod를 추가하는 방법을 살펴보겠습니다. 먼저 OpenIV를 다운로드하여 설치했는지 확인해야 합니다. OpenIV 공식 홈페이지(https://openiv.com/)에서 확인하실 수 있습니다.

제목: Array.Sort 함수를 사용하여 C#에서 배열을 정렬하는 예 텍스트: C#에서는 배열이 일반적으로 사용되는 데이터 구조이므로 배열 정렬 작업이 필요한 경우가 많습니다. C#에서는 배열을 편리하게 정렬할 수 있는 Sort 메서드가 있는 Array 클래스를 제공합니다. 이 문서에서는 C#에서 Array.Sort 함수를 사용하여 배열을 정렬하는 방법을 보여주고 구체적인 코드 예제를 제공합니다. 먼저 Array.Sort 함수의 기본 사용법을 이해해야 합니다. 배열.그래서

2024년 초 최대의 다크호스인 '팬텀팔루'는 최근 스팀 얼리액세스에 상륙하며 연속 신기록을 경신하고 있을 뿐만 아니라 판매량 500만장을 돌파했다. 이 게임의 최대 온라인 접속자 수는 158만 명(1,582,482명)을 돌파하며 최고 기록을 경신했습니다! 이 성과로 인해 "Phantom Parlu"는 Steam 역사상 가장 많은 온라인 사용자를 보유한 상위 3대 게임이 되었습니다! '플레이어언노운스 배틀그라운드'(325만), 'CS2'(181만)에 이어 2위! 또한 "Eidolon Pallu"에는 플레이어를 Ash Ketchum으로 바꾸고 모든 Pallu를 포켓몬으로 바꿀 수 있는 최초의 플레이어 제작 "Pokémon" 모드도 있습니다. 새해를 시작하는 걸작! 3일 만에 판매량 500만 장 돌파, 놓치지 마세요! https://www.17을 클릭하세요.

MySQL의 MOD 함수를 사용하여 모듈러 연산의 나머지를 찾습니다. MySQL 데이터베이스에서는 MOD 함수를 사용하여 모듈러 연산을 수행할 수 있습니다. 즉, 두 숫자의 나머지를 찾을 수 있습니다. 이 기사에서는 MOD 함수를 사용하여 모듈식 작업을 수행하는 방법을 소개하고 해당 코드 예제를 제공합니다. MOD 함수의 구문은 다음과 같습니다. MOD(N,M) 여기서 N과 M은 모듈로 연산을 수행할 두 숫자이고, N은 피제수, M은 제수입니다. MOD 함수는 N을 M으로 나눈 나머지를 반환합니다. 다음은 MOD 함수를 사용하여 두 숫자의 나머지 부분을 찾는 방법을 보여주는 간단한 예입니다.
