在非对象上调用成员函数get()-Symfony和Silex

daniel_c05

我刚刚加入了一个团队,该团队从事基于Symphony和Silex的项目(作为PHP框架)和作曲者(作为包管理器)。该系统目前正在生产中使用,并且运行良好。

所以有什么问题?当我在本地运行时,该应用程序不幸失败:

Fatal error: Call to a member function get() on a non-object in /Library/WebServer/wsmcrm/session.php on line 9

我做了什么

  • 将我的Apache httpd.conf重置为原始设置。
  • 编辑了httpd.conf以启用php和其他一些小的调整。
  • 克隆仓库(主库)
  • 运行脚本以使composer在composer.json文件中安装所有库(/ vendor文件夹现在似乎具有我需要的所有库),
  • 将DocumentRoot更改为/ Library / WebServer / wsmcrm /
  • 创建了我们的PROD数据库的本地副本。
  • 我们的代码中更新了数据库连接,以指向我的本地数据库进行测试。
  • 启动apache服务器
  • 启动mysql服务器

当我访问localhost /时,应用程序会立即失败,但上面的例外除外。这是非常罕见的,因为问题出在此行上:

<?php

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RedirectResponse;
use OMG\User;

$session = $app['controllers_factory'];
/*This is line 9 */ $session->get('/', function(Silex\Application $app) {

这告诉我$ session为空,这意味着'controllers_factory'不是$ app中的数组项,这也很奇怪,因为就像我说的那样,它实际上可以在生产中进行任何其他更改。

本质上,我们在这里从index.php调用session.php:

return new RedirectResponse('/session/login');

只要本地没有存储身份验证cookie,并且/ session与此匹配:

$app->mount('/session', include 'session.php');

我只是不太确定到底是什么问题,但是我确定这与我的本地环境设置有关。

有任何想法吗?

这是完整的httpd.conf,以备您四处查看。

daniel_c05

就其价值而言,这是我的本地配置存在的问题。

最初的请求URI为“ /”,并触发了Apache服务index.php。但是,当index重定向到“ / session / *”时,apache直接提供“ session.php”-因此,为什么“ $ app”为null,而不是提供index.php并让他通过以下方式挂载“ session.php”框架。

我必须编辑.htaccess并添加:

<IfModule mod_rewrite.c>
Options -MultiViews

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

这样所有请求都通过index.php进行处理,而不是直接为控制器提供服务。

这样就解决了我的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Symfony 2错误:在非对象上调用成员函数get()

Symfony:错误:在非对象上调用成员函数get()

symfony 和棘轮在 null 上调用成员函数 get()

Symfony 2-错误:“在*行*的非对象上调用成员函数*

在空“ Symfony Php”上调用成员函数get()

在非对象上调用成员函数get_news()

消息:在非对象上调用成员函数get_users()

PHP错误消息-未定义的变量:LINE 6中的db和致命错误:在非对象上调用成员函数connect()

“在非对象上调用成员函数 userList()”

在非对象上调用成员函数getElementById()

Symfony 3.4 无法在测试中加载装置:错误:在 null 上调用成员函数 get()

Symfony登录表单—致命错误:在null上调用成员函数get()

Symfony FOSRestBundle 错误:在 null 上调用成员函数 get()。[路由或配置错误]

WebTestCase,Silex和$ _GET

在null,Symfony 4上调用成员函数encodePassword()

在字符串 symfony 3.4 上调用成员函数 format()

在symfony4中的null上调用成员函数setDp()

错误:在数组 Symfony 3 上调用成员函数 contains()

使用Symfony和Doctrine在null 500上调用成员函数has()

在成员函数返回的向量上调用begin和end

验证用户名和密码:调用非对象上的成员函数fetchAll()

致命错误:在非对象上调用成员函数isUploaded()

OOP问题:在非对象上调用成员函数prepare()

在非对象Laravel 4.2上调用成员函数where()

Laravel 5:[在非对象上调用成员函数getAction()

致命错误:在非对象上调用成员函数isVirtual()

致命错误:在非对象wordpress上调用成员函数delete()

致命错误:在非对象上调用成员函数query()

Magento-在非对象上调用成员函数getOptionArray()