技术圈开发者交流群:

composer.json 文件结构详解

composer.json 记录了项目中依赖库的关系、版本信息、其他数据等。

{
    "name": "phpoffice/phpspreadsheet",
    "description": "Read, Create and Write Spreadsheet documents in PHP",
    "keywords": ["PHP", "OpenXML", "Excel", "xlsx", "xls"],
    "type": "library",
    "license": "MIT",
    "authors": [
        {
            "name": "Maarten Balliauw",
            "homepage": "https://blog.maartenballiauw.be"
        }
    ]
}
PHP 2020年04月27日 1232

Composer 基本使用

工欲善其事,必先利其器;器欲尽其能,必先得其法。

作为 PHP 工匠,Composer 便是 PHP 工匠们的一大利器之一,下面就介绍一下如何得其法,进而尽其能

假设我们的项目需要用到这个库monolog/monolog日志库,首先来安装这个库:

composer require monolog/monolog
PHP 2020年03月26日 1726

Composer 是什么 ?

ComposerPHP的一个依赖管理工具。

项目开发中,难免会用到各种已有的扩展库,各个扩展库的依赖关系可能错综复杂,使用传统的require include的方式会让你困于处理各种依赖问题,而无法专注于自身的业务代码。

这一次,真正了解Composer

PHP5.3引入命名空间的概念,有了这一加持,万众期待的Composer踏着七彩祥云而来,让这个世界上最好的编程语言有了现代范儿。

PHP 2020年03月19日 1122

CentOS 下给 PHP 安装 Redis 扩展

Redis是一个开源,内存型,数据结构存储系统。可以用来作为数据库、缓存、消息中间件。开源就不用说了,内存型说明其速度快,数据结构存储说明它是可以数据存储。

Redis 参考:Centos下Redis的安装与配置,这里只介绍phpredis扩展的安装,Redis 的扩展在不同环境下有不同的安装方法,这里要说的是从源码的安装方式,其他方式可以参考:Redis Install

wget http://pecl.php.net/get/redis-5.2.0.tgz
PHP 2020年03月18日 1159

CentOS 下给 php 安装 Xdebug 扩展

XdebugPHP的一个扩展,可帮助开发者进行调试和开发。

这里以源码编译安装的PHP为例,如果是yumapt安装的php可以参考官网:Installation Xdebug

wget https://xdebug.org/files/xdebug-2.9.2.tgz
PHP 2020年03月17日 1143

Laravel 自增的时候不自动更新 updated_at 字段

最近在做文章浏览量自增的时候,总是会自动更新 updated_at 字段:

$article->increment('views', 1);

上面的用法会自动更新updated_at,如何避免了?

查看了下源码,发现更新的时候会调用 usesTimestamps()方法判断是否更新updated_at

PHP 2020年03月13日 1617

使用 Casbin 作为 ThinkPHP 的权限控制中间件

PHP-Casbin 是一个强大的、高效的开源访问控制框架,它支持基于各种访问控制模型的权限管理。

Think-Casbin 是一个专为ThinkPHP5.1定制的Casbin的扩展包,使开发者更便捷的在thinkphp项目中使用Casbin。

  1. 创建thinkphp项目(如果没有):
composer create-project topthink/think=5.1.* tp5
PHP 2020年03月10日 58705

PHP-Casbin 中 ABAC 的使用方法

PHP-Casbin 是一个强大的、高效的开源访问控制框架,它支持基于各种访问控制模型的权限管理。

ABAC基于属性的访问控制,可以使用主体、客体或动作的属性,而不是字符串本身来控制访问。

PHP 2020年03月06日 97071

Policy的高级用法 - Casbin的Model和Policy

Casbin中,适配器(adapterCasbin的中间件)实现了policy规则写入持久层的细节。 Casbin的用户可以调用adapterloadPolicy()方法从持久层中加载policy规则, 同样也可以调用savePolicy()方法将Policy规则保存到持久层中。 为了保持代码轻量, 我们没有将adapter的代码放在主库中。

文件适配器,是将Policy策略存储在.csv的文件中:

$e = new Enforcer("path/to/model.conf", "path/to/policy.csv");
PHP 2019年02月13日 52249

Model的高级用法 - Casbin的Model和Policy

Model的加载方法主要有三种:

  • 从文件读取
  • 从字符串加载
  • 动态添加

从文件应该说是最常用的一种方式,只需要在初始化Casbin决策器的时候传入文件地址即可:

PHP 2019年02月13日 30841

Model语法和策略存储 - Casbin的Model和Policy

Casbin支持的model:https://github.com/php-casbin/php-casbin/blob/master/README_CN.md#%E6%94%AF%E6%8C%81%E7%9A%84Models

  • Model CONF 至少应包含四个部分: [request_definition], [policy_definition], [policy_effect], [matchers]

  • 如果 model 使用 RBAC, 还需要添加[role_definition]部分。

  • Model CONF 可以包含注释。注释以 # 开头,# 将注释整行。

与 policy 不同,model 只能加载,不能保存。 因为我们认为 model 不是动态组件,不应该在运行时进行修改,所以我们没有实现一个 API 来将 model 保存到存储中。

PHP 2019年02月13日 33275

工作原理 - Casbin基础知识

在 Casbin 中, 访问控制模型被抽象为基于 PERM (Policy, Effect, Request, Matcher) 的一个文件。 因此,切换或升级项目的授权机制与修改配置一样简单。 您可以通过组合可用的模型来定制您自己的访问控制模型。 例如,您可以在一个model中获得RBAC角色和ABAC属性,并共享一组policy规则。

Casbin中最基本、最简单的model是ACL。ACL中的Model CONF为:

PHP 2019年02月13日 32407

排行

解决方案

网站建设

专业企业官网建设,塑造企业形象,传递企业价值

系统开发

系统软件开发,用心思考,用心设计,用心体验

技术支撑

打破技术瓶颈,让不堪重负的项目起死回生

业务中台

构建全渠道一体化运营能力,实现全链路数字化

文案策划

文案撰写、营销策划,专注品牌全案

新媒体运营

一站式解决企业互联网营销痛点和难题

以技术的力量,改变互联网

联系我们
鄂ICP备19028750号 @copyright 2020 tech1024.com