PHPStorm编辑器常用快捷键和技巧

19.2k PHP教程 , 一条评论
1 快捷键 PHPStorm 就是一神器,jetbrains 一家都牛,下面是日常的一些快捷键,掌握了基本就不用鼠标了。 CTRL+单击 # 定位到类、函数、变量的声明位置(同:CTRL+B) CTRL+SHIFT+N # 按名称查找文件,并快速进入 ALT+F1 # 在项目中定位当前文件所在位置(或双击上方的导航栏,也能达到相似的效果) CTRL+F12 # 当前文件的方法列表 CTRL…

PHP概念:MVC、OOP、ORM、CURD、ActiveRecord、单一入口

7.1k PHP教程 , 发表评论
1 MVC MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型(M)、视图(V)、控制器(C),它们各自处理自己的任务。 视图:视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色…

PHP提取奇数或偶数下标元素

4.9k PHP教程 , , , 2评论
该功能主要用到 array_filter() 函数,这个函数可以用回调函数过滤数组中的单元。用法: array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) 依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE,则传入数组的当前值会被包含在返回的结果数组中,数组的键名保留不变。 其中,…

PHP提取多维数组指定一列的方法大全

15.4k PHP教程 , , 发表评论
PHP中对多维数组特定列的提取,是个很常用的功能,正因为如此,PHP在5.5.0版本之后,添加了一个专用的函数array_column()。当然,如果你的PHP版本低于5.5.0,就得用别的方法处理了。 例如,对于以下这个数组: $user = array( '0' => array('id' => 100, 'username' => 'a1'), '1' => array('id' => 101, 'username' =&g…

MVC架构的职责划分原则

21.9k PHP教程 , 10评论
最近负责一个项目,用了 Yii Framework 的 MVC 框架,刚开始自以为结构很稳健。 但是随着对业务逻辑理解的深入,才开始意识到问题的严重。 我错误地理解了 MVC 中的 Controller,想当然地根据以往的经验,把所有的业务逻辑都放在 Controller 的 action 中去实现。 于是,每一个 Controller 的代码都上千行,越来越臃肿。 最后,我下定决…

PHP多参数方法的重构

4.0k PHP教程 发表评论
假设我们要完成一个保存文章的功能,如果采用函数编程的方式,大概会是下面这个样子: <?php function saveArticle($title, $content, $categoryId) { // ... } ?> 每个参数代表一个属性,但带来一个问题,参数列表会变得很长。此时采用对象编程的技术会是个好方法: <?php class Article { var $title; var $content; var $ca…

RBAC和ACL两种权限控制区别

ACL:Access Control List,访问控制列表,是前几年盛行的一种权限设计,它的核心在于用户直接和权限挂钩。 RBAC:Role Based Access Control ,翻译过来基本上就是基于角色的访问控制系统。 RBAC的核心是用户只和角色关联,而角色代表对了权限,这样设计的优势在于使得对用户而言,只需角色即可以,而某角色可以拥有各种各样的权限并可…

笛卡尔直积PHP版

1 概念 在数学中,两个集合X和Y的笛卡儿积(Cartesian product),又称直积,表示为X × Y。设A、B是任意两个集合,在集合A中任意取一个元素x,在集合B中任意取一个元素y,组成一个有序对(x,y),把这样的有序对作为新的元素,他们的全体组成的集合称为集合A和集合B的直积,记为A×B,即A×B={(x,y)|x∈A且y∈B}。 假设集合A={a, b},集…

PHP生成特定长度的纯字母字符串

3.7k PHP教程 , 一条评论
PHP中,md5()、uniqid()函数可以返回32位和13位不重复的字符串,但是这些字符串都可能包含有数字。如果需要纯字母的字符串,而且长度不定,比如8位,那么直接用这两个函数无法达到效果。 这时可以考虑从ASCII码加mt_rand()函数的角度考虑,因为A~Z的ASCII码是65~90,a~z的ASCII码是97~122,所以程序可以这么写: // 生成纯字母字符串函…

Redis安装和配置教程

1 Linux命令安装 Ubuntu安装: sudo apt-get install redis-server CentOS安装需要先安装EPEL源,再从EPEL源安装redis: yum -y install epel-release yum -y install redis 点击查看CentOS安装EPEL软件源。 2 Linux源码安装 首先要安装依赖工具, yum install -y gcc-c++ tcl wget # CentOS apt-get install gcc-c++ tcl wget # Ubuntu…
« 上一页   下一页 »