YII 1.0 扩展第三方类】的更多相关文章

扩展缩略图类在blog\protected\extensions 中建立 Image/CThumb.php 1. 自己瞎弄的,一点都不优雅 include_once Yii::app()->BasePath."/extensions/Image/CThumb.php";$aaa = new CThumb(); .... 2. Yii::import("ext.Image.CThumb");$aaa = new CThumb('uploads'); //初始化…
一.属性标签与规则设置 当进入网站页面,将会读数据库返回信息到视图上.那么,现在定义模型中的属性在视图标签上的显示, 也就是模型属性到前台标签的映射 // 定义模型属性到前台标签的映射 public function attributeLabels(){ return array( // '表字段' => '<label>标签里面的内容' 'username' => '用户名' ); } 这将为 username 属性生成一个 <label>用户名</label&…
Yii 2.0最显著的特征之一就是引入了命名空间,因此对于自定义类的引入方式也同之前有所不同.这篇文章讨论一下如何利用Yii 2.0的自动加载机制,向系统中引入自定义类和命名空间.本文旨在抛砖引玉,如果有理解不当敬请指正,欢迎大家把自己的方法拿出来分享.我们希望被引入的类应该达成一下两点: 在应用中的任这里输入代码意位置可以使用该类名或命名空间,而不用显式调用require()/include(). 利用Yii的autoloader,仅在类被调用时加载,以遵循Yii按需加载的原则,节省资源. 我…
有些时候你对第三方得到jar包中的类并不是很满意,想根据实际情况做一些扩展.如果说第三方的jar包已经提供了一些可扩展的类,比如提供了Interceptor,Filter或者其他的类,那么使用原生的比较保险一些.但是如果说并没有提供这些,那就要走一些不寻常的路.这里我总结了一些可行的方法,有的优雅,有的则是不得已而为之的. 一.继承你想要扩展的类,重写想要扩展的方法 这种做法是比较好的,符合面向对象的思想.另外动作比较小,风险也不会很大.但是这种方法有个前提是,被扩展的类在扩展点能用这个子类去替…
 什么是类的扩展方法 扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. MSDN Extension methods enable you to "add" methods to existing types without creating a new derived type, recompiling, or otherwise modifying the original type. Extension methods are a…
从安全的角度来讲,<中篇>介绍的Implicit类型的Authorization Grant存在这样的两个问题:其一,授权服务器没有对客户端应用进行认证,因为获取Access Token的请求只提供了客户端应用的ClientID而没有提供其ClientSecret:其二,Access Token是授权服务器单独颁发给客户端应用的,照理说对于其他人(包括拥有被访问资源的授权者)应该是不可见的.Authorization Code类型的Authorization Grant很好地解决了这两个问题.…
虽然我们在<上篇>分别讨论了4种预定义的Authorization Grant类型以及它们各自的适用场景的获取Access Token的方式,我想很多之前没有接触过OAuth 2.0的读者朋友们依然会有"不值所云" 之感,所以在介绍的内容中,我们将采用实例演示的方式对Implicit和Authorization Code这两种常用的Authorization Grant作深入介绍.本章着重介绍Implicit Authorization Grant. Implicit Au…
对于目前大部分Web应用来说,用户认证基本上都由应用自身来完成.具体来说,Web应用利用自身存储的用户凭证(基本上是用户名/密码)与用户提供的凭证进行比较进而确认其真实身份.但是这种由Web应用全权负责的认证方式会带来如下两个问题: 对于用户来说,他们不得不针对不同的访问Web应用提供不同的用户凭证.如果这些凭证具有完全不同的密码,我们没有多少人能够记得住,所以对于大部分整天畅游Internet的网友来说,我想他们在不同的网站注册的帐号都会采用相同的密码.密码的共享必然带来安全隐患,因为我们不能…
一.ajax例子:ajaxReturn("ok","eval")->thinkphp中ajax的返回值的方法,返回参数为ok,返回类型为eval(字符串) 1.MainController.class.php <?php namespace Ajaxtest\Controller; use Think\Controller; class MainController extends Controller { public function zhuye()…
Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础属性和事件 Silverlight实例教程 - Validation数据验证DataAnnotation机制和调试技巧 Silverlight实例教程 - Validation客户端同步数据验证 Silverlight实例教程 - Validation服务器端异步数据验证 Silverlight实例…
一.关于JS和CSS路径问题 1.找路径是从入口文件index.php来找的,而不是从文件本身所在位置来找, 因为我们访问时是访问的入口文件 2.在存放JS和CSS的时候可以放到public文件夹下 3.可以使用标签引入: 3.1 import标签 传统方式的导入外部JS和CSS文件的方法是直接在模板文件使用: 系统提供了专门的标签来简化上面的导入: 3.2 load标签 load标签,通过文件方式导入当前项目的公共JS或者CSS 3.3js和css标签 系统还提供了两个标签别名js和css 用…
ionic3.0 引入第三方插件 (swiper),方法很多,现详细说明下官方推荐(typings)做法. 1.全局安装Typings 1. npm install -g typings  2.搜索你想要的插件,如 swiper: 1. typings search swiper 搜索结果如下(有3个swiper资源): 1. react-native-swiper dt https://github.com/leecade/react-native-swiper#readme2. swiper…
本篇主要讨论一下User Model的使用技巧. 注意, 由于Django 1.5之后user model带来了很大的变化, 本篇内容只针对django 1.5之后的版本. 1. 确定 User Model 我们推荐一下方式来确定某一django项目使用的user model: # 使用默认User model时 >>> from django.contrib.auth import get_user_model >>> get_user_model() <cla…
写在前面 在项目部署当中会需要更新 css 文件或 js 等资源文件,为了避免由于浏览器缓存的原因无法加载新的 css 或 js ,一般的做法是在资源文件的后面加上一个版本号来解决,这样浏览器就会去服务器下载新的资源文件. 如果某个 css 文件被多个页面引用,那么我们就需要去每个页面一个一个的去修改,这样做的方式属于重复性的动作,而且有的时候还会漏掉需要修改的页面,所以我们就需要一个自动管理资源文件版本号的功能 先看效果 如何实现 通过扩展HemHelper 类,添加 为 js 和 css 文…
DataTable和DataRow利用反射直接转换为Model对象的扩展方法类   /// <summary> /// 类 说 明:给DataTable和DataRow扩展方法,直接转换为对象集合或对象 /// 编 码 人:程晨旭 /// 联系方式:Email:97391519@qq.com /// Blog:http://www.chengchenxu.com /// 修改日期:2018-02-28 /// 补充说明:此扩展类可以极大的简化操作,但是性能低下,大数据以及高性能要求下慎用. /…
yii安装redis扩展可以用不同的方式, 最简单便捷的是使用 composer 方式, 有的时候composer会出现一些问题(现在还弄不懂),可能是网络什么的原因吧~ 还可以使用手动安装的方式, 具体的参考这篇文章https://www.yii-china.com/post/detail/43.html  但是有一个需要注意的地方, 如果手动安装的话, 需要配置vendor/yiisoft/extensions.php 文件,代码单独拿出来瞧一瞧 如下: 'yiisoft/yii2-redi…
<?php //yii1.0 curd简单写法 //查询 Yii::app()->db->createCommand($sql)->queryAll();//查询所有行数据 ​Yii::app()->db->createCommand($sql)->queryRow();//查询第一行数据 ​Yii::app()->db->createCommand($sql)->queryColumn();//查询第一列数据​ ​Yii::app()->…
一.扩展基类和区域创建 (1)在应用之前,我们先在表现层创建一个公共的系统扩展文件来(SystemExtension)存放我们需要延伸和扩展的方法类. 在常规的项目系统操作中,我们都需要用到增删查改的基础操作管理,所以我们可以建一个公共的控制控制器(PublicController)来让用得到的控制器来继承,当然如果特殊和复杂的操作,我们在进行方法重写. PublicController.cs using Bobo.DataAccess.DataBase; using Bobo.Reposito…
1.先把分页类放在根目录下,比如放在某个模块下 2.在类里面写入命名空间,注意类名的格式(类名要与里面的方法名一致) 3.在需要的方法里面按照路径进行实例化,然后就可以使用了 方法: public function xianshi() { $c = D("chinastates"); $shuliang = $c->count(); //查询总条数 $page = new \Home\libs\Page($shuliang,15); //实例化分页类并传参数 $xinxi = $…
第三方类的引入,以分页类为例: 1.在控制器里新建一个分页的操作方法FenYe() 注意:第三方类Page.class.php放在Think或Home文件夹下,并新近一个文件夹,放在里面,并在其类里加上命名空间namespace Home\FenYe function FenYe() { $model=D("Nation"); $total=$model->count(); //造分页类 $page=new \Home\FenYe\Page($total,3); //参数一为总数…
nginx.conf #user nobody;worker_processes 1; #error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info; #pid logs/nginx.pid; events {       worker_connections 1024;} http {  include mime.types;  default_type application…
1. 扩展核心类,主要作用就是扩展系统现在的功能. 为前台增加独立的视图文件夹: a. 自定义路径常量 :在application ->config/  constants.php中增加 /*my constant*/ define('THEMEES_DIR','themes/'); b. 在application文件夹的core中自定义MY_Loader.php /* 分析核心类中自动加载的功能的实现方式*/<?php if ( ! defined('BASEPATH')) exit('No…
继续<Yii Framework2.0开发教程(3)数据库mysql入门> 首先给予一定的尊重yii2数据库支持引进 Yii 基于 PHP's PDO一个成熟的数据库访问层的建立.它提供了一个统一的 API 并且克服了许多不同的 DBMS 违禁使用. Yii 默认支持下面 DBMS : MySQL MariaDB SQLite PostgreSQL CUBRID: version 9.1.0 or higher. Oracle MSSQL: version 2012 或更高版本号,如需使用 L…
命名空间 相当于虚拟目录 所有类文件都放在虚拟目录 功能:实现自动加载类 TP框架的命名空间要更复杂 内容=> 命名空间中定义和使用 都用\1初始命名空间 相当于 根目录 如:Library文件夹 初始命名空间下包含根命名空间 根命名空间:1.LIbrary目录下面的所有 文件夹2.程序目录下模块名 定义命名空间 写法:从根开始写,写到本类的该目录下为止使用命名空间 从根开始写,写到类名为止 TP框架下每个类文件都要加命名空间,namespace ########################…
Yii 2.0.3 Advanced版控制器不能包含大写字母的Bug,我是直接下载Archive文件安装的,非Composer方式安装 Yii 框架之前是支持在Url中包含大写字母的 最新的Yii 2.0.3版本却不支持了,原来是Yii的一个Bug... 修改方法: 打开这个文件 \vendor\yiisoft\yii2\base\Module.php 找到第554行: 将代码 if (!preg_match('%^[a-z][a-z0-9\\-_]*$%', $className)) { 修改…
Scala中implict的一种用法就是扩展现有类的方法,有点类似于.Net中的扩展方法(MS对扩展方法的介绍:扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型.) Scala中有两种方式做到方法的扩展,以扩展String为列: 第一种(code:10-12,29):创建一个以implict修饰的新类并以String类型入参.在新的类型(代码中是mystring)中添加要扩展的方法(read2) 第二种(code:3-5,9,28): 创建一个以i…
题目补充: 创建一个接口Shape,其中有抽象方法area,类Circle .Rectangle实现area方法计算其面积并返回. 又有Star实现Shape的area方法,其返回值是0,Star类另有一返回值boolean型方法isStar: 在main方法里创建一个Vector,根据随机数的不同向其中加入Shape的不同子类对象(如是1,生成Circle对象: 如是2,生成Rectangle对象:如是3,生成Star对象).然后将Vector中元素依次取出,判断其是否为Star类.如是返回其…
==================== PHP 7.0 编译安装================== wget http://cn2.php.net/get/php-7.0.9.tar.bz2/from/this/mirror -- 下载php镜像tar xvf mirror -- 解压镜像cd php-7.0.9/ -- 进入安装目录sudo apt-get update -- 更新阿里云库 sudo apt-get install libkrb5-dev \ libc-client2007…
自增(++).自减(--)运算符主要用在For循环中,Swift有自己更简易的循环遍历方法,而且类似x- ++x这种代码不易维护. Swift为了营造自己的编码风格,树立自己的代码精神体系,已经不支持自增(++).自减(--)运算符,可以用+=和-=代替. 如果你仍然喜欢在Swift中使用自增(++).自减(--)运算符,可以利用extension扩展Int类,实现自增++.自减--运算符! 左:prefix 右:postfix 中:infix /*扩展Int类,实现自增++.自减--运算符*/…
有些时候我们会在项目中用到很多js库, 因为Yii 1.0框架会默认自动加载一些自带核心库, 很容易引起冲突问题, 下面的代码就展示了如何在Yii 1.0框架下取消jQuery自动加载. Open Config/main.php add this code into 'components' 'clientScript'=>array( 'scriptMap'=>array( 'jquery.js'=>false, 'jquery.min.js'=>false, ) ),…