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

这篇文章主要介绍了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으로 문의하세요.
Java正则表达式的进阶用法指南Java正则表达式的进阶用法指南Jan 09, 2024 am 09:57 AM

Java正则表达式高级应用指南引言:正则表达式是一种强大的文本模式匹配工具,使用正则表达式可以在字符串中执行各种复杂的搜索、替换和提取操作。在Java中,正则表达式是通过java.util.regex包提供的类来实现的。本文将为读者介绍Java正则表达式的高级应用,并提供具体的代码示例。一、基本概念和语法1.1正则表达式的基本概念正则表达式是由字符和特殊字

深入研究和优化Java正则表达式语法的方法深入研究和优化Java正则表达式语法的方法Jan 10, 2024 pm 02:30 PM

探索Java正则表达式语法的高级应用与优化方法引言:正则表达式是一种强大的模式匹配工具,在Java开发中广泛使用。然而,随着需求的复杂化和数据规模的增加,使用正则表达式进行高效匹配变得更加重要。本文将探索Java正则表达式语法的高级应用与优化方法,并提供具体的代码示例。一、高级应用1.1捕获组的使用捕获组是正则表达式中的一种强大的特性,它可以提取并存储匹配

PHP字符函数的高级应用PHP字符函数的高级应用Jun 19, 2023 pm 10:53 PM

PHP是一种非常流行的服务器端编程语言,广泛的应用于网站开发中。在PHP编程中,字符串操作尤为常见。在这篇文章中,我们将介绍PHP字符函数的高级应用,来帮助你更好地处理和操作字符串。字符串截取字符串截取可以让你从一个较长的字符串中抽取出所需的部分,PHP提供了多个函数来实现字符串截取。例如,substr()函数可以从字符串中截取一定长度的字符。下面是一个简单

深入了解Python递归函数的高级应用与优化技巧深入了解Python递归函数的高级应用与优化技巧Feb 03, 2024 am 08:37 AM

掌握Python递归函数的高级应用与优化策略引言:递归函数是一种强大而常用的编程技巧,它能够有效解决问题,简化代码逻辑。然而,递归函数的性能问题常常困扰着程序员。本文将介绍Python中递归函数的高级应用及优化策略,并提供具体的代码示例。一、递归函数的基本概念递归函数是指在函数定义中调用自身的函数。它通常由两个部分组成:基线条件和递归条件。基线条件是递归函数

在JavaScript中实现函数式编程的高级应用在JavaScript中实现函数式编程的高级应用Jun 15, 2023 pm 11:01 PM

JavaScript是一门支持函数式编程的语言,函数式编程的核心思想是将数据和函数分离开,强调程序的不变性和无副作用。函数式编程的语法简洁,且对代码的组织和测试有很大的优势。本文将介绍一些在JavaScript中实现函数式编程的高级应用。纯函数在函数式编程中,一个最基本的概念就是函数的纯粹性,纯函数是指一个函数无论在任何时候,输入同样的参数会得到同样

PHP中的正则表达式的高级应用PHP中的正则表达式的高级应用Jun 22, 2023 pm 06:27 PM

在PHP的开发中,正则表达式是非常高效的工具,可以帮助开发者快速地进行字符串匹配、替换、提取等操作。本文将介绍PHP中正则表达式高级应用,包括反向引用、贪婪与懒惰匹配、零宽断言等内容。一、反向引用反向引用是正则表达式中非常重要的概念,它可以使用已经匹配的子表达式内容来匹配后面的字符串。在PHP中,使用正则表达式反向引用时需要使用特殊符号""与数字结合使用。例

PHP数组高级应用指南:实用技巧与案例解析PHP数组高级应用指南:实用技巧与案例解析Mar 13, 2024 pm 04:18 PM

PHP数组是开发中经常用到的一种数据结构,在实际应用中,我们经常需要对数组进行各种操作和处理。本篇文章将介绍一些高级的PHP数组应用技巧,并通过案例解析来展示其实际应用。1.数组合并与分割合并数组有时候我们需要合并两个数组,PHP中提供了array_merge()函数来实现这一功能:$array1=[1,2,3];$array2=['a',

深入探讨C语言指针:高级应用和常见问题解决方案深入探讨C语言指针:高级应用和常见问题解决方案Feb 23, 2024 pm 08:00 PM

C语言指针深度剖析:指针的高级应用与常见问题解决方案引言:C语言作为一门底层语言,指针是其核心特性之一。虽然指针的概念相对简单,但其高级应用和常见问题解决方案却是很多程序员所关注的重点。本文将从指针的高级应用和常见问题出发,探索C语言指针的各种用法,并提供具体的代码示例。一、指针的高级应用动态内存分配动态内存分配是指在运行时根据需要分配内存的一种方式。C语言

See all articles

핫 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를 무료로 생성하십시오.

뜨거운 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구