Php OpenEMR中我的第一个Symfony 2.4组件控制器
我正在现有的应用程序OpenEMR中构建。我正试图建立一个报告的基础。我遵循了本教程中的说明 在编写此帮助请求时。我找到了这个答案 我将建议的routing.yml添加到程序的配置中,错误没有改变。它仍在生成此错误Php OpenEMR中我的第一个Symfony 2.4组件控制器,php,symfony,components,Php,Symfony,Components,我正在现有的应用程序OpenEMR中构建。我正试图建立一个报告的基础。我遵循了本教程中的说明 在编写此帮助请求时。我找到了这个答案 我将建议的routing.yml添加到程序的配置中,错误没有改变。它仍在生成此错误 [11-Oct-2019 08:23:43 America/New_York] PHP Fatal error: Uncaught Error: Class 'OpenEMR\Finance\Reports\financialSummaryByInsurance' not
[11-Oct-2019 08:23:43 America/New_York] PHP Fatal error: Uncaught Error:
Class 'OpenEMR\Finance\Reports\financialSummaryByInsurance' not found in
C:\oerm_dev\www\dev\mindfulemr4\interface\reports\insurance.php:5
Stack trace:#0 {main} thrown in C:\oerm_dev\www\dev\mindfulemr4\interface\reports\insurance.php on line 5
因此,我采取的步骤如下。我编辑了composer.json以添加名称空间。在下面添加中间行之后,我使用dumpautoloader-o重新加载了composer
"OpenEMR\\Billing\\" : "library/billing/src",
"OpenEMR\\Finance\\Reports\\" : "library/financialReports/src",
"OpenEMR\\Pdf\\" : "library/pdf/src",
我使用安装了路由组件
composer require symfony/routing 2.4
我构建控制器时没有使用controller financialsummary byinsurance这个词,而是使用PHPStorm来帮助命名和创建类
namespace OpenEMR\Finance\Reports; //This will function as my controller event though not named controller
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing; //Making use of Symfony routing
class financialSummaryByInsurance //Class controller name without the word controller
{
public function insurancepaid()
{
/**
* @Route("/library/financialReports/src/financialSummaryByInsurance/insurancepaid", name = "insurancepaid")
*/
return new Response("insurance data here my first controller from scratch" );
}
}
然后,我想构建一个页面来调用控制器以显示来自控制器的信息。文件名为insurance.php,内容为
use OpenEMR\Finance\Reports\financialSummaryByInsurance;
$show = new financialSummaryByInsurance;
echo $show->insurancepaid();
PHPStorm能够在insurance.php文件中找到并建议每个组件。这就是为什么我对错误日志中的错误消息感到困惑。我一定是在把这个框架从一楼拿下来的过程中遗漏了什么 似乎找不到类错误
执行
编写器转储自动加载以重新生成自动加载文件
我发现你们的路由类是不对的,应该是这样
使用Sensio\Bundle\FrameworkExtraBundle\Configuration\Route
ref:要显示从控制器financialSummaryByInsurance返回的页面,必须使用与您定义的insurancepaid路由匹配的HTTP请求调用该页面 控制器只是一个PHP类,如果您实例化它,它不会显示html页面
如果你打电话给我http://yourdomain/library/financialReports/src/financialSummaryByInsurance/insurancepaid 您的require vendor/autoload.php行在哪里?控制器类的名称需要在其末尾有“controller”一词。您能否确认financialSummaryByInsurance类位于library/financialReports/src/financialSummaryByInsurance.php?如果不是的话,这可能是你上课的原因。。。找不到错误。如果是,请确保已更新composer中的自动加载,例如,使用composer dump autoload,如中的回答中所建议的Theva@dbrumann非常确定他们正在尝试独立完成一些事情,并且他们实际上根本不需要autoload.php文件。很遗憾,它们变暗了。是的,library/financialReports/src/financialSummaryByInsurance.php就在那个文件夹中。我检查了两次这两个单词的拼写。我发现一个拼写错误。这并没有解决问题。我放进去只是为了看看会发生什么。没有乐趣。你能试着将composer.json中的这一行修改为psr-4:{:src/},然后运行composer dump autoladtheva吗?我知道了。这是骆驼案。我必须大写文件名的第一个字母和类的第一个字母。简单的事情。