【yii2-如何使用PHP进行TDD开发?】教程文章相关的互联网学习教程文章

Yii2中使用join、joinwith多表关联查询

表结构现在有客户表、订单表、图书表、作者表,客户表Customer (id customer_name)订单表Order (id order_name customer_id book_id)图书表 (id book_name author_id)作者表 (id author_name)模型定义下面是这4个个模型的定义,只写出其中的关联Customerclass Customer extends \yii\db\ActiveRecord { // 这是获取客户的订单,由上面我们知道这个是一对多的关联,一个客户有多个订单 public function getOrders() { // 第一个参数...

Yii2隐藏frontend/web和backend/web的方法

Yii 是一个高性能,基于组件的 PHP 框架,用于快速开发现代 Web 应用程序。名字 Yii (读作 `易`)在中文里有 “极致简单与不断演变” 两重含义,也可看作 **Yes It Is**! 的缩写。Create .htaccess file in root folder, i.e advanced/.htaccess and write below code.Options +FollowSymlinks RewriteEngine On # deal with admin first RewriteCond %{REQUEST_URI} ^/(admin) <------ RewriteRule ^admin/assets/(.*)$ backend/...

yii2随笔(七)依赖注入——(3)yii2的依赖注入

yii2的依赖注入的核心代码在 yii\di,在这个包(文件夹)下面有3个文件,分别是Container.php(容器),Instance.php(实例),ServiceLocator(服务定位器),现在我们讨论一下前两个,服务定位器可以理解一个服务的注册表,这个不影响我们讨论依赖注入,它也是依赖注入的一种应用。我们还是从代码开始讲解yii2是怎么使用依赖注入的。// yii\base\application //这个是yii2的依赖注入使用入口,参数的解释请参考源码,这里不多解释 pub...

yii2随笔(七)依赖注入——(4)服务定位器

服务定位器定位器是依赖注入的一种解决方式,它包含依赖注入,在解决了依赖注入后,如果服务使用者和服务提供者不是用一个人,那么使用者要了解提供服务的必须参数,这样才能保证依赖的正确性,这就耦合了使用者和提供者,服务定位器就是解耦这部分的,服务提供者在 ServiceLocator 中注册服务(同时注册了依赖),仅仅告诉服务使用者那些服务的名称或者别名,那么对于服务提供者和使用者都是好的,使用者只需要知道提供者提供的什...

yii2随笔(七)依赖注入——(1)什么是依赖注入

在学yii2之前,就已经知道了“依赖注入”的这个名词,也尝试了解过,但是都是一直云里雾里的,可能是一直没有机会真实的使用过,所以了解的不太彻底,这次学习yii2顺便把这个所谓“高大上”给搞定!!!哈哈在开始“依赖注入”之前,我们先说说设计模式,我觉的从这方面入手可能理解的更快一些。在最开始学程序时,我们学的是“过程式”编程,比如说实现某些功能,从上到下一句一句的来实现,顶多是把某些通用的功能整理出来当做一...

yii2随笔(七)依赖注入——(2)php依赖注入的简单实现

前面我们知道了问题所在,那么PHP是怎么解决这个办法的呢?因为是yii2,所以我们用yii2的方式简单介绍一下,我把yii2的核心代码整合了一下,来说php实现依赖注入的过程。在使用过yii2开发的同学,对Yii::createObject不陌生,他就是依赖注入的一个“入口”,我把它提出来改一下://$p 可以想象的yii2的配置文件,如$p = [class=>sdk/Test, file=>xxxx]; // class 是将要实现的类,‘file’是将要实现的对象的属性 function createO...

Yii2框架制作RESTful风格的API快速入门教程

先给大家说下什么是RESTrestfulREST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一。 他在论文中提到:"我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一个功能强、性能好、适宜通信的架构。REST指的是一组架构约束条件和原则。" 如果...

Yii2中使用asset压缩js,css文件的方法_php实例

官网文档 http://www.yiiframework.com/doc-2.0/guide-structure-assets.html yii目录下运行 asset/template assets.php 生成assets.php,这是一个配置模板,并修改如下 <?php /** * Configuration file for the "yii asset" console command. */ // In the console environment, some path aliases may not exist. Please define these: Yii::setAlias(@webroot, __DIR__ . /web); Yii::setAlias(@web, /); return [ // Adjust co...

yii2控制器事件可否在配置文件中配置?

在yii2中,想要在具体的操作方法之前执行某些逻辑,应该怎么做? 目前采用的做法是,抽出一个基础控制器,在里面的beforeAction里书写。 想问一下,是否可以通过配置文件配置,怎么配置。 感谢回复内容:在yii2中,想要在具体的操作方法之前执行某些逻辑,应该怎么做? 目前采用的做法是,抽出一个基础控制器,在里面的beforeAction里书写。 想问一下,是否可以通过配置文件配置,怎么配置。 感谢已解决 $params = array_merge(req...

Yii2两个模块(module)间的数据需要相互调用,如何设计才能最大程度降低耦合性?

有A,B两个模块,A模块数据库中内容修改要使B模块的数据跟着一起修改,A模块还可以读取B模块的一些数据。 该如何设计才能最大程度降低模块间的耦合性?回复内容:有A,B两个模块,A模块数据库中内容修改要使B模块的数据跟着一起修改,A模块还可以读取B模块的一些数据。 该如何设计才能最大程度降低模块间的耦合性?把Customer当成A,Order当成B,这个例子中就修改了B中的值。$customer = Customer::findOne(123);$order = new Order();...

yii2在控制器验证权限报错

rbac 权限能正常验证 但是在控制器里验证的时候 抛出异常控制器里的代码是这样的 public function beforeAction($action) { $controller = Yii::$app->controller->id; //获取控制器 $action = Yii::$app->controller->action->id; //获取方法 if(Yii::$app->user->can($controller.'_'.$action)){return true; }else{throw new \yii\web\UnauthorizedHttpException('你没有操作权限'); } }到页面上的时候就显示这样...

yii2修改默认demo中登录模块连接数据库

Php代码 <?php namespace app\models; class User extends \yii\base\Object implements \yii\web\IdentityInterface { public $id; public $username; public $password; public $authKey; public $accessToken; private static $users = [ 100 => [ id => 100, username => admin, password => admin, authKey => test100key, accessToken => 100-token, ], ]; /** * @inheritdoc */ public static functio...

Yii2设置时区

时区这东西,在开发的时候,你说重要吧,也还好,毕竟没它也能正常运行,你说不重要吧,那就纠结了。特别是linux系统,都TMD差上几小时,你能不痛苦吗?win还好一点。有一些常规方法,是大家目前都在采用的1、php.ini中的设置,这个就不谈了,2、程序中公用文件里设置,date_default_timezone_set一下时区3、或者。。。自己写时间处理函数,在遇到时间的时候,用这个函数处理(比较偏向于使用这种方式,如果你的用户来自于五湖四海...

请问Yii2框架中有了AR,DAO还用得到吗?

请问Yii2框架中有了AR,DAO还用得到吗?回复内容:请问Yii2框架中有了AR,DAO还用得到吗?用的到。ar->query builder->dao->pdo->execution