- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我觉得我已经搜索了整个互联网,但似乎无法弄清楚这个问题。我正在使用 Silex(最新版本),似乎无法弄清楚如何使用 Silex 的 ServiceProvider 系统返回一个类的实例以供使用。
我确实知道如何创建一个基本的服务提供者。
我不知道该怎么做的是如何让这个服务提供者使用自定义类。我已经尝试了所有我能想到的或在网上找到的东西。部分问题是 Silex 关于此的文档不是很广泛,并且在对它的完成方式(或看起来如此)进行相当大的更改之前,已经询问/回答了关于此类问题的大多数问题所以答案不是最新的。
所以,简单地说:我想使用 Silex 的 $app['myclass'] 类型系统来访问我的类,这样我就可以执行类似 $app['myclass']->myMethod() 的操作。
我挂断的地方是这个,虽然我可以创建一个服务提供者,但我不知道如何让服务提供者识别这个类。我已经尝试了整个命名空间的东西,设置了 Composer 自动加载 pso-0,并尝试使用 MyClass/MyClass 类型的东西。
哈哈,基本上,因为文档太少了,我可能有任何地方做错了。
有人会编写当前的分步过程来将自定义库/类连接到 $app 变量吗?我认为这不仅对我有帮助,对其他人也有帮助。谢谢!
最佳答案
在我看来,您在类加载方面遇到了问题。这是过去由 silex 中的 autoload
服务处理的事情。然而,该服务已被删除,以支持 composer 的自动加载。
您在 composer.json
中指定自动加载是正确的。如果您不熟悉 Composer ,请阅读 introduction .有关自动加载如何工作的详细信息,请参阅 the autoloading section of the basic usage chapter .
我会在这里给你一个简短的版本。确保您的文件名符合 PSR-0 命名标准。将此添加到您的 composer.json
:
{
"autoload": {
"psr-0": {"Acme": "src/"}
}
}
您需要将 Acme
替换为您的命名空间,将 src
替换为您的类的基目录。例如,Acme\Foo\Bar
类将位于 src/Acme/Foo/Bar.php
中。
然后运行 php composer.phar update
以重新转储自动加载文件,您应该能够访问您的类。
关于php - 如何将自定义类与 silex ServiceProvider 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13292630/
我正在编写一个 Web 应用程序,它有一个前置网站,然后是一个管理控制台。我希望能够有一个设置,当设置为 true 时,意味着在前端网站上显示一个保留或维护页面。 我的路由配置目前在一个 yaml 文
我正在我的 app.php 文件中做这样的共享服务: $app['rules'] = $app->share(function() use($app) { return new MyProje
这是一个关于第一次使用 Silex 的非常基本的问题。 我要安装this project链接自 this tutorial .我已经按照 these instructions 通过 Composer
我正在使用 Silex 1.1 和 Monolog 1.0.0。我的代码和我的问题: $app->register(new Silex\Provider\MonologServiceProvider(
我环顾四周,似乎无法弄清楚如何在使用 Silex 时链接到静态文件。我已经看到一些关于 Symfony 的类似问题/答案,但它们涉及 YML 路由文件,我不将其与 Silex 一起使用。 我的情况 我
我环顾四周,似乎无法弄清楚如何在使用 Silex 时链接到静态文件。我已经看到一些关于 Symfony 的类似问题/答案,但它们涉及 YML 路由文件,我不将其与 Silex 一起使用。 我的情况 我
我在 Silex 中定义了几个路由,但我不知道如何捕获不存在的路由。 例如: $app->get('/category/{name}', 'Acme\Controller\Main::category
我想将 Silex 与 MongoDB 一起使用。我想最好的方法是使用再次使用 Doctrine MongoDB 库的 Silex 扩展。 现在有两个 Silex Extensions 似乎提供了这个
我安装了 phpunit 3.6.12 和 Silex。在我的应用程序的根目录中,我有包含简单测试文件 BlogFunctionTest.php 的测试目录 assertGreaterThan(0,
我最近将一切正常的 Silex v1.3 项目迁移到了 Silex v2。我收到一个 Twig 错误,我不明白原因 Twig_Error_Runtime in Template.php line 59
我正在开发一个带有 silex-skeleton 的最新版本的项目。尝试使用 share 方法时显示以下错误: 代码: $app['login'] = $app->share(function() u
我有一个大问题,我不知道为什么 silex 异常处理程序不捕获异常? 我的简单代码如下所示: error(function (\Exception $e, $code) { exit('asd');
在 Symfony 中,可以通过在 security.yml 文件中添加 invalidate_session: false 来避免 session 在注销时被破坏。 遗憾的是,这在 Silex 中不
我尝试使用 silex 文档为 LDAP 身份验证编写自定义身份验证提供程序 - Defining a custom Authentication Provider . 但如果我查看 $app['se
我想要一条匹配“任何东西”的路线。如果数据库中存在具有给定路径的页面,我想从“任何”值中查找。如果是,则需要处理此路由,否则应处理下一个匹配的路由。 有没有简单的方法可以解决这个问题,还是我错过了路线
我试图在 Controller 上设置错误处理程序,以捕获可能导致页面故障的所有内容。例如:在这种情况下,我试图捕获我的方法使用错误的参数调用外部API后可能发生的任何错误,但是除了给我提供典型的Cl
Silex 中是否可以根据抛出的异常使用错误处理程序? 我知道这可以通过单个异常处理程序和抛出异常的类名上的 switch 语句来实现,但对我来说,“Silex 方式”似乎更干净,但不起作用。 这就是
我的目标是将FOQElasticBundle与我的Silex网站链接。 问题是FOQElasticBundle的documentationn声明我只需要在config.yml文件中放入一些基本内容即可
有没有我可以通过 $app 变量 (Silex\Application) 调用的函数来访问 Web 根目录和应用程序根目录? 假设我的项目布局是这样的 /src run() 在 src/cont
我的路由有三个参数,userid 总是必需的,a 和 b 是可选参数。可以给出 a or (a and b) or (neither a nor b): $app->get('/show/{useri
我是一名优秀的程序员,十分优秀!