pimple学习(1)pimple的使用

pimple学习(1)pimple的使用pimple 学习 1 pimple 的使用 Container 类继承一个 php 数组对象接口 在程序整个生命周期中 各种属性 方法 对象 闭包都可以注册其中 1 得到一个 Container 实例 container newContainer 2 定义服务 container session storage function c returnnewSes

pimple学习(1) pimple的使用

Container类继承一个php数组对象接口,在程序整个生命周期中,各种属性、方法、对象、闭包都可以注册其中

1.得到一个Container实例:

$container = new Container();

2.定义服务:

$container['session_storage'] = function ($c) {
return new SessionStorage('SESSION_ID');
};


``

container[session]=function( c) {
return new Session($c[‘session_storage’]);
};`


得到定义的实例:$session = $container['session'];

3.定义工厂服务:用来在调用的时候返回不同的实例

$container['session'] = $container->factory(function ($c) {
return new Session($c['session_storage']);
});

4.定义参数:实现在容器之外配置,便于修改

$container['cookie_name'] = 'SESSION_ID';
$container['session_storage_class'] = 'SessionStorage';

$container['session_storage'] = function ($c) {
return new $c['session_storage_class']($c['cookie_name']);
};

5.

6.在定义后修改服务:

$container['session_storage'] = function ($c) {
return new $c['session_storage_class']($c['cookie_name']);
};

$container->extend('session_storage', function ($storage, $c) {
$storage->...();
return $storage;
});


7.扩展容器:如果想复用一个容器,将服务打包进一个实现Pimple\ServiceProviderInterface接口的provider类中

class FooProvider implements Pimple\ServiceProviderInterface
{
public function register(Container $pimple)
{
// register some services and parameters
// on $pimple
}
}






然后在一个容器中注册该Provider

$pimple->register(new FooProvider());

8.得到原生的函数:而不是由函数返回的实例

sessionFunction = $container->raw('session');

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/203054.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午10:41
下一篇 2026年3月19日 下午10:41


相关推荐

  • ZOJ 2412 Farm Irrigation(DFS 条件通讯块)

    ZOJ 2412 Farm Irrigation(DFS 条件通讯块)

    2022年1月5日
    62
  • mysql的左右连接_MySQL之左连接与右连接

    mysql的左右连接_MySQL之左连接与右连接左连接:select列1,列2,列NfromtableAleftjointableBontableA.列=tableB.列(正常是一个外键列)[此处表连接成一张大表,完全当成一张普通表看]where,having,groupby…照常写。右连接:select列1,列2,列NfromtableArightjointableBontableA.列=tableB…

    2025年11月12日
    5
  • 新手到黑客的最全入门路径图(附全部学习资料下载)!

    新手到黑客的最全入门路径图(附全部学习资料下载)!点击上方“程序人生”,选择“置顶公众号”第一时间关注程序猿(媛)身边的故事01入门介绍说到黑客,大家可能觉得很神秘,其实狭义上的黑客就是去寻找网站、系统、软件等漏洞,刚入门的黑客大部分从事渗透工作,而渗透大部分属于web安全方向,就是利用漏洞来取得一些数据或达到控制,让对方程序崩溃等效果。02一些常用的名词解释挖洞的话,就相当于在程序中查找漏洞,举一个不大恰当但容易理解的比喻,就像韩非子说所的那个

    2022年6月11日
    40
  • 微信公众平台开发概述

    微信公众平台开发概述微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台 而公众平台开放接口则是提供服务的基础 开发者在公众平台网站中创建公众号 获取接口权限后 可以通过阅读本接口文档来帮助开发 如遇问题 可前往 公众号社区发帖交流

    2026年3月19日
    2
  • 关于Vue使用es6模板字符串没反应的问题「建议收藏」

    关于Vue使用es6模板字符串没反应的问题「建议收藏」错误示范VScode发get请求的地址及参数使用单引号”包裹时,发现${this.keyWord}没有变颜色,跟字符串一个颜色,也就是没有将this.keyWord识别成变量,当成了一般字符串,发请求时带的参数问题请求不到结果search(){ this.$axios.get(‘https://api.github.com/search/users?q=${this.keyWord}’).then( res=>{ console.log(res); }, err=&gt

    2022年8月21日
    22
  • 怎么从安卓设备转移数据到苹果_如何将数据从安卓手机转移到苹果手机[通俗易懂]

    怎么从安卓设备转移数据到苹果_如何将数据从安卓手机转移到苹果手机[通俗易懂]手机人手一部,更新也特别快,换系统的同时也想保留之前的数据怎么办?如何将数据从安卓手机转移到苹果手机?android手机数据转移到iPhone手机的方法教程在这里为你准备,第一次使用苹果的用户怎样才能将原有android数据迁移到苹果呢?来看如下具体内容!我们都知道在大屏iPhone6和iPhone6Plus智能手机即将上市的前夕,苹果公司发布了一份详细的支持文件,指导Android用户如何…

    2026年1月19日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号