php教程 php手册 从零开始学YII2框架(六)高级应用程序模板

从零开始学YII2框架(六)高级应用程序模板

Jun 06, 2016 pm 08:19 PM
고급 애플리케이션

这篇文章主要介绍了YII2框架学习笔记之高级应用程序模板,深入浅出从安装,配置到使用方法都做了介绍,希望对大家有所帮助

高级应用程序模板
这个模板用在大型的团队开发项目中,而且后台从前台独立分离出来以便于部署在多个服务器中。由于YIi2.0的一些新的特性,这个程序模板的功能要更深一点。提供了基本的数据库的支持,注册、密码找回等功能。

安装

可以通过Composer来安装
如果没有安装Composer,先安装

curl -s | php

然后用如下命令来获取

php composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-advanced /path/to/yii-application

也可以直接下载压缩文件:Yii 2 with advanced application template(beta)
https://github.com/yiisoft/yii2/ ... -app-2.0.0-beta.tgz

开始

安装完成后,需要对其进行初始化操作。

执行init,选择开发环境(dev) php /path/to/yii-application/init 创建新的数据库,设置common/config/main-local.php里的components.db数据库信息 使用控制台命令迁移数据库 yii migrate 设置web服务器的根目录 前台/path/to/yii-application/frontend/web/对应的url为 后台/path/to/yii-application/backend/web/对应的url为

目录结构

在根目录下面有这几个子目录

backend——后台web程序
common——公共的文件
console——控制台程序
environments——环境配置
frontend——前台web程序
根目录下面还有包含一些文件

.gitignore ——git版本控制中忽略的文件和目录,如果你有一些你不想要的文件到你的源代码里面就把它添加到这个文件中。
composer.json——这个下面会描述
init——在Composer里面所描述初始化脚本
init.bat——和上面一样,不过是Windows下面的
LIENSE.md——这个就不说了
README.md——同上
requirements.php——Yii运行环境要求检测文件
yii——控制台程序引导文件
yii.bat——Windows下面的东东

系统定义的路径别名

@yii ——框架的目录。
@app——当前正在运行的应用程序的基本路径。
@common -公共文件目录。
@frontend——前端web应用程序目录。
@backend ——后端web应用程序目录。
@console -控制台目录。
@runtime——当前正在运行的web应用程序的运行时目录
@vendor ——基础框架目录。
@web ——当前正在运行的web应用程序的url
@webroot——当前正在运行的web应用程序的web根目录。

应用程序

这个模板包含三个应用程序,前台、后台和控制台。前台通常来说就是展现给终端用户的,也就是项目本身。后台就是管理员控制面板,包含有分析以及类似的功能等。控制台主要用来做一些定时任务和一些简单的服务器的管理,另外也可以用来部署应用程序、数据库的迁移、资源的管理等。

common 目录提供一些公共的文件,可用于多个应用程序,例如User模型。

前台和后台都是web应用程序,他们都包含一个web目录,也就是web的根目录,在部署服务器的时候就得要指向这个目录。
每个应用程序都有他们自己的命名空间以及对应的别名。同理,common也有自己的命名空间和对应的别名。

配置和开发环境

在平常的开发中,直接设置配置文件会有多个问题

每个团队成员都有自己的配置选项。如果提交这样的配置将影响其他团队成员。
产品数据库密码和API密钥不应该在代码仓库中。
在有多个服务器的情况下:开发、测试、生产,每一个服务器都应该有自己的配置。
每种情况下都定义所有配置选项很重复,并且还要花太多的时间去维持它。

为了解决这些问题,,Yii引入了一个非常简单的环境的概念。每个环境由环境目录下的一组文件的集合来表示。init命令用于不同环境之间切换。它只是复制从环境目录中所有应用程序的根目录。

通常环境包含应用程序引导文件如index.php和以-local.php后缀的配置文件。这些已经添加到.gitignore中,所以不会再添加到源码仓库中。
为了避免重复的配置文件相互覆盖。例如,前台应用程序按照以下顺序来读取配置:

common/config/main.php common/config/main-local.php frontend/config/main.php frontend/config/main-local.php

参数文件按以下顺序读取

common/config/params.php common/config/params-local.php frontend/config/params.php frontend/config/params-local.php

后面读取的文件配置会覆盖前面的配置

整个的流程图形如下

配置 Composer

应用程序安装完成后就可以设置要目录下面的composer.json

{ "name": "yiisoft/yii2-app-advanced", "description": "Yii 2 Advanced Application Template", "keywords": ["yii", "framework", "advanced", "application template"], "homepage": "http://www.yiiframework.com/", "type": "project", "license": "BSD-3-Clause", "support": { "issues": "https://github.com/yiisoft/yii2/issues?state=open", "forum": "http://www.yiiframework.com/forum/", "wiki": "http://www.yiiframework.com/wiki/", "irc": "irc://irc.freenode.net/yii", "source": "https://github.com/yiisoft/yii2" }, "minimum-stability": "dev", "require": { "php": ">=5.4.0", "yiisoft/yii2": "*", "yiisoft/yii2-swiftmailer": "*", "yiisoft/yii2-bootstrap": "*", "yiisoft/yii2-debug": "*", "yiisoft/yii2-gii": "*" }, "scripts": { "post-create-project-cmd": [ "yii\\composer\\Installer::setPermission" ] }, "extra": { "writable": [ "backend/runtime", "backend/web/assets", "console/runtime", "console/migrations", "frontend/runtime", "frontend/web/assets" ] } }

首先,修改一些基本信息。例如名称,描述,关键词,主页等等。
你还可以根据你的需要添加更多的应用程序。这些包都是来自packagist.org,可免费的浏览所有的代码。
修改完composer.json之后 就可以运行

php composer.phar update --prefer-dist

,等下载并安装完成后就可以开始使用了。自动加载的类将会自动处理。

创建从后端到前端的链接

  通常情况下需要从后端应用程序连接到前端应用程序。因为前端应用程序可能包含自己的URL管理规则,所以需要再添加一个不同名字的后台的URL管理规则。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Java 정규 표현식에 대한 고급 사용 가이드 Java 정규 표현식에 대한 고급 사용 가이드 Jan 09, 2024 am 09:57 AM

Java 정규식 고급 응용 프로그램 가이드 소개: 정규식은 문자열에서 다양하고 복잡한 검색, 바꾸기 및 추출 작업을 수행하는 데 사용할 수 있는 강력한 텍스트 패턴 일치 도구입니다. Java에서 정규식은 java.util.regex 패키지에서 제공하는 클래스를 통해 구현됩니다. 이 기사에서는 독자에게 Java 정규식의 고급 응용 프로그램을 소개하고 특정 코드 예제를 제공합니다. 1. 기본 개념 및 구문 1.1 정규식의 기본 개념 정규식은 문자와 특수 단어로 구성됩니다.

Java 정규식 구문에 대한 심층 연구 및 최적화 Java 정규식 구문에 대한 심층 연구 및 최적화 Jan 10, 2024 pm 02:30 PM

Java 정규식 구문의 고급 적용 및 최적화 방법을 살펴보세요. 소개: 정규식은 Java 개발에 널리 사용되는 강력한 패턴 일치 도구입니다. 그러나 요구 사항이 더욱 복잡해지고 데이터 크기가 증가함에 따라 정규식을 사용한 효율적인 매칭이 더욱 중요해졌습니다. 이 기사에서는 Java 정규식 구문의 고급 적용 및 최적화 방법을 살펴보고 특정 코드 예제를 제공합니다. 1. 고급 응용 프로그램 1.1 그룹 캡처 사용 그룹 캡처는 일치 항목을 추출하고 저장할 수 있는 정규식의 강력한 기능입니다.

PHP 배열의 고급 응용 프로그램 및 사례 분석 PHP 배열의 고급 응용 프로그램 및 사례 분석 Jul 15, 2023 pm 10:22 PM

PHP 배열의 고급 응용 프로그램 및 사례 분석 서문 PHP에서 배열은 매우 중요하고 일반적으로 사용되는 데이터 구조입니다. 여러 값을 저장할 수 있으며 키-값 쌍을 통해 데이터에 빠르게 액세스하고 조작할 수 있습니다. 그러나 기본적인 추가, 삭제, 수정 및 쿼리 작업 외에도 PHP 배열에는 많은 고급 응용 프로그램과 기능이 있습니다. 이 기사에서는 사례 분석을 통해 이러한 응용 프로그램을 소개합니다. 다차원성과 배열의 연관 PHP에서 배열은 다차원적일 수 있습니다. 즉, 하나의 배열이 다른 배열 내에 중첩되어 다중 레벨 데이터 구조를 형성할 수 있습니다. 이러한 배열은 종종 복잡한 내용을 저장하는 데 사용됩니다.

JavaScript의 함수형 프로그래밍의 고급 응용 JavaScript의 함수형 프로그래밍의 고급 응용 Jun 15, 2023 pm 11:01 PM

JavaScript는 함수형 프로그래밍을 지원하는 언어입니다. 함수형 프로그래밍의 핵심 아이디어는 데이터와 함수를 분리하여 프로그램의 불변성과 부작용이 없음을 강조하는 것입니다. 함수형 프로그래밍은 간결한 구문을 가지며 코드 구성 및 테스트에 큰 이점이 있습니다. 이 기사에서는 JavaScript의 함수형 프로그래밍의 일부 고급 응용 프로그램을 소개합니다. 순수 함수 함수형 프로그래밍에서 가장 기본적인 개념 중 하나는 함수의 순수성입니다. 순수 함수란 동일한 매개변수를 입력해도 함수가 동일한 결과를 얻는다는 의미입니다.

Python 재귀 함수의 고급 응용 및 최적화 기술에 대한 심층적인 이해 Python 재귀 함수의 고급 응용 및 최적화 기술에 대한 심층적인 이해 Feb 03, 2024 am 08:37 AM

Python 재귀 함수의 고급 적용 및 최적화 전략을 익히십시오. 소개: 재귀 함수는 문제를 효과적으로 해결하고 코드 논리를 단순화할 수 있는 강력하고 일반적으로 사용되는 프로그래밍 기술입니다. 그러나 재귀 함수의 성능 문제는 프로그래머를 괴롭히는 경우가 많습니다. 이 기사에서는 Python 재귀 함수의 고급 적용 및 최적화 전략을 소개하고 구체적인 코드 예제를 제공합니다. 1. 재귀 함수의 기본 개념 재귀 함수는 함수 정의에서 자신을 호출하는 함수를 말합니다. 일반적으로 기준 조건과 재귀 조건의 두 부분으로 구성됩니다. 기본 조건은 재귀 함수입니다.

PHP 배열 고급 응용 프로그램 가이드: 실용적인 팁 및 사례 분석 PHP 배열 고급 응용 프로그램 가이드: 실용적인 팁 및 사례 분석 Mar 13, 2024 pm 04:18 PM

PHP 배열은 개발에 자주 사용되는 데이터 구조입니다. 실제 응용 프로그램에서는 배열에 대한 다양한 작업과 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 고급 PHP 배열 애플리케이션 기술을 소개하고 사례 분석을 통해 실제 애플리케이션을 보여줍니다. 1. 배열 병합 및 분할 배열 병합 때때로 두 개의 배열을 병합해야 할 때가 있습니다. PHP는 이 기능을 수행하기 위해 array_merge() 함수를 제공합니다: $array1=[1,2,3];$array2=['a',

PHP 문자 함수의 고급 응용 PHP 문자 함수의 고급 응용 Jun 19, 2023 pm 10:53 PM

PHP는 웹사이트 개발에 널리 사용되는 매우 인기 있는 서버측 프로그래밍 언어입니다. PHP 프로그래밍에서는 문자열 조작이 특히 일반적입니다. 이 기사에서는 문자열을 더 잘 처리하고 조작하는 데 도움이 되는 PHP 문자 함수의 고급 응용 프로그램을 소개합니다. 문자열 차단 문자열 차단을 사용하면 긴 문자열에서 필요한 부분을 추출할 수 있습니다. PHP는 문자열 차단을 구현하는 여러 기능을 제공합니다. 예를 들어, substr() 함수는 문자열에서 특정 길이의 문자를 가로챌 수 있습니다. 여기에 간단한

PHP에서 정규식의 고급 응용 PHP에서 정규식의 고급 응용 Jun 22, 2023 pm 06:27 PM

PHP 개발에서 정규식은 개발자가 문자열 일치, 교체, 추출 및 기타 작업을 신속하게 수행하는 데 도움이 되는 매우 효율적인 도구입니다. 이 기사에서는 역참조, 탐욕적 일치 및 게으른 일치, 너비가 0인 어설션 등을 포함하여 PHP의 정규식의 고급 응용 프로그램을 소개합니다. 1. 역참조 역참조는 정규식에서 매우 중요한 개념입니다. 이미 일치하는 하위 표현식의 내용을 사용하여 다음 문자열을 일치시킬 수 있습니다. PHP에서는 정규식 역참조를 사용할 때 숫자와 함께 특수 기호 ""를 사용해야 합니다. 예

See all articles