问题标签 [psr-4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
model-view-controller - 带有控制器的 Slim 框架 PSR 4
我正在制作基于 Slim 框架的应用程序。我正在遵循 PSR 4 模式。这个应用程序基本上是在处理 RESTful 服务。为了使其在未来更加灵活,我们采用了一种不同于传统超薄编码的方法。我的目录结构如下所示,
在“路由”目录中,我将存储一些带有菜单链接的 yaml 文件。这些将在路由器组件中进行解析,以生成控制器及其方法的正确可调用路径。
但是,我面临的问题是确定哪个是这样做的好方法?如何从 .yml 文件中分配每个路由器项目并将它们用作
如需进一步参考,其中一个 yaml 文件如下所示,
什么将是一个好的和有效的方法?请建议。
php - PHP Composer Autoloader 简单结构
我有 Composer 工作,我想使用它的自动加载器来加载我的类,但它不工作。这是我的目录结构。我保持它非常简单开始。
在 webgl.php 里面我有:
在 index.php 我有:
我的 composer.json 为自动加载定义了这个:
如果我取消注释第二个要求,则脚本可以工作,否则我会收到“致命错误:第 5 行的 /vagrant/index.php 中找不到类 'controllers\webgl'”。
我以为文件夹结构、类命名空间和类名都符合psr-4。但我一定是误会了什么。我已经阅读了大量类似的问题,但没有一个能够为我排序。
谁能告诉我为什么我的课程没有加载以及我应该做些什么来解决它?
php - 如何自动加载文件名与类名不同的类?
我看过这些,
我可以改变,但在我的 MV* 结构中,我有:
在他们的实际课程中,
我试图与名称保持一致。如果我没有添加类名后缀(Controller、Model),我将无法加载该类,因为那是在重新声明。
如果我保留我的类的名称,自动加载会失败,因为它会寻找一个名为
当文件名是真的,
我唯一的方法是(无顺序):
- 使用create_alias
- 重命名我的文件(customer.model.php 到 customermodel.php)
- 重命名我的课程
- 使用正则表达式
- 使用包含文件的引导程序(
include
,require_once
等)
?
示例代码,
看来我必须重命名文件,
http://www.php-fig.org/psr/psr-4/
“终止类名对应于以 .php 结尾的文件名。文件名必须与终止类名的大小写匹配。”
php - PHP 通过使用 PSR-4 的“使用”来包含类
我正在使用 PSR-4,我在 composer.json 上定义了 psr-4 部分
当我尝试使用“use”关键字导入类时
我收到此错误:UploadFilesController.php 第 13 行中的 FatalErrorException:找不到类 'Controllers\Controller'
如果我将静态路由设置为文件
它可以工作,但之后发现其他文件也存在同样的问题,包括像 Illuminate 这样的 PHP 类。
有什么问题?
php - 使用 composer 自动加载嵌套类
我创建了一个非常基本的验证器类。
我的基本代码在我的 src/ 文件夹中,它会自动加载
这很好用,所以当我实例化 a new "kevdotbadger\Validator\ Validator
is 给我src/Validator.php
然后我的 Validator.php 类在我的src/Rules
目录中加载了一堆子类。这些是通过使用神奇加载的__call
,所以->between()
应该寻找src/Rules/between.php
. 但是,由于某种原因,尽管它是在我的 composer.json 文件中设置的,但它通常不会加载。
我的整个代码库可在https://github.com/kevdotbadger/validator/
我是否正确设置了我的命名空间?我认为问题可能出在 php 5.3 版上,但是我需要使用 5.3 版。
谢谢。
php - 将一个单独的 Laravel 应用程序自动加载到 Lumen
我正在使用 Lumen 为现有的 Laravel 应用程序编写 API。为了允许 API 的控制器访问 Laravel 应用程序的模型,我将 Laravel 应用程序添加为 git 子模块,并通过 composer.json 文件将其设置为自动加载到“Main”命名空间中:
这很好用,但我想问一下这会对内存使用产生什么影响。是整个 Laravel 应用程序都被加载到内存中(从而导致性能下降),还是 Lumen 应用程序在引用 Main\Model 类时只是被告知“在哪里看”?
谢谢
cakephp - CakePHP3 插件自动加载类
我正在制作一个 CakePHP3 插件,并且正在使用我编写的使用 PSR-4 自动加载的库。如果我需要应用程序的 composer.json 中的库,它会正确自动加载,我可以在我的应用程序中的任何地方使用它,包括插件。当我尝试通过我的插件的 composer.json 要求它时,它安装得很好,并且 composer 没有给出任何错误,但它似乎没有自动加载。当我转到由使用该库的插件控制的页面时,我收到找不到该类的错误。
难道我做错了什么?我签vendor/composer/autoload_psr4.php
入了我的插件文件夹,我的课程在那个文件中。我也在composer dump-autoload
应用程序目录和插件目录中运行,但它没有帮助。
我使用插件烘焙插件,cake bake plugin MyPlugin
然后编辑插件的 composer.json 的 require 部分以包含我的库。然后我跑了composer update
,它安装了库,plugins/MyPlugin/vendor/mylibrary
没有错误。
php - 命名空间不起作用,使用 composer psr-4
我正在使用 slim 框架、composer 和 psr-4 自动加载。
这是在作曲家:
注意:我也尝试了上述方法"Shorty\\":"app/Shorty/Models"
目录结构:app/Shorty/Models/Trap.php
内部Trap.php
:
在我的路线中:
我得到:找不到类“陷阱”
我做错了什么?
php - 在 Laravel 5 项目中使用枚举类
我想在我的 laravel 5 应用程序中使用一些枚举类。它们仿照此 PHP 手册页示例: http: //php.net/manual/en/class.splenum.php
文件 app\Enums.php 如下所示:
我想从控制器中使用这些。我在控制器的顶部放了一条 use 语句:
当我尝试使用这样的类时:
我收到一个错误:找不到类“MyApp\Http\Controllers\Quiz\CategoryFamily”
我已经运行了 compose dump-autoload 以防万一。
如何从内部控制器(多个控制器)中使用我的 Enum 类?
php - Zend 1 不适用于 psr-4 命名空间
我正在研究 zend 框架 1 但我想使用 \ 而不是 _
像
这工作正常但是当我改变它时
然后它给了我一个错误
我在作曲家中创建了命名空间
那么如何在代码中使用这些命名空间
这在 Zend Framework1 中可行吗?