小编fyr*_*rye的帖子

如何在Symfony 2中为数据库视图设置实体(doctrine)

让我们说我有一个视图表.我希望从中获取数据到实体.我可以(以及如何)创建实体类来做到这一点.(不需要保存操作).我只想展示它们.

php mysql symfony doctrine-orm

21
推荐指数
4
解决办法
2万
查看次数

Twig:选择某些块并渲染它们

我正在将twig模板引擎集成到PHP应用程序中.特别是,我想使用树枝引擎来渲染表单.

看看symfony2如何使用twig渲染表单小部件,他们有一个巨大的模板文件,其中包含所有小部件,如下所示:

(...)
{% block password_widget %}
{% spaceless %}
    {% set type = type|default('password') %}
    {{ block('field_widget') }}
{% endspaceless %}
{% endblock password_widget %}

{% block hidden_widget %}
    {% set type = type|default('hidden') %}
    {{ block('field_widget') }}
{% endblock hidden_widget %}

{% block email_widget %}
{% spaceless %}
    {% set type = type|default('email') %}
    {{ block('field_widget') }}
{% endspaceless %}
{% endblock email_widget %}

{% block test_widget %}
{% spaceless %}
   <div>
     {{test}}
   <div>
{% endspaceless %}
{% …
Run Code Online (Sandbox Code Playgroud)

php symfony twig

19
推荐指数
2
解决办法
2万
查看次数

Symfony 3.4记录器服务

当我调用loggerservice时,在日志文件中获取此信息消息它是否有效,但是在日志文件中写入此消息:

php.INFO:User不推荐使用:"logger"服务是私有的,从容器中获取它自Symfony 3.2以来就已弃用,并且将在4.0中失败.您应该将服务公之于众,或者直接停止使用容器并改为使用依赖注入.{"exception":"[object](ErrorException(code:0):User弃用:\"logger \"服务是私有的,从Symfony 3.2开始从容器中获取它并在4.0中失败.你应该制作服务公共,或者直接停止使用容器并改为使用依赖注入./home///####PROJECT/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php:275 )"} []

我的symfony版本:3.4.1

symfony symfony-3.4

10
推荐指数
1
解决办法
1万
查看次数

在Windows上为PHP和Apache安装Imagick

到目前为止我采取的步骤:

  1. 我在Win7机器上安装了Imagick,它通过命令行安装并正常运行.
  2. 我已将这里提供的php_imagick-3.1.2-5.6-ts-vc11-x86.zip的内容解压缩到我的\ PHP\ext目录中.
  3. 在php.ini中启用了imagick.dll
  4. 重新启动...
  5. 启动Apache时没有错误.
  6. Fatal error: Class 'Imagick' not found当我尝试运行使用Imagick的脚本时,我仍然收到错误.

当前版本:

  • Windows 7 x64
  • Apache 2.4.10 x86 VC11(来自Apachelounge)
  • PHP 5.6.3 x86 VC11 TS(来自windows.php.net)
  • ImageMagick 6.9.0-0 Q16 x86(来自imagemagick.org)
  • 想象DLL php_imagick-3.1.2-5.6-ts-vc11-x86.zip(从这里)

我运行的是旧版本的PHP,并且Imagick正常工作,然后我更新了PHP(以及Imagick DLL及其),现在我似乎无法让它工作.

phpinfo( ),我没有看到Imagick在那里列出,所以它似乎根本没有加载模块.这很奇怪,因为我在启动Apache时没有遇到任何错误.

我已经尝试过在Windows上安装Imagick for PHP的每一篇文章和演练,但它们似乎都是为旧版本的PHP编写的.

有人可以帮我安装并运行吗?看起来它只是缺少一个我似乎无法弄清楚的简单步骤.如果您需要更多信息,请询问.我会尽力帮助你.

php windows imagick

8
推荐指数
2
解决办法
2万
查看次数

PhpStorm:有没有办法使用内联 PHPDoc 注释在 return 语句上强制执行类型?

考虑以下代码:

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Car extends Model
{
    public static function getTheFirstCar(string $color): ?self
    {
        /** @var ?self */ // <-- Doesn't apply! Is there any alternative?
        return (new self())->newQuery()->firstWhere('color', '=', $color);
    }
}
Run Code Online (Sandbox Code Playgroud)

代码工作正常;尽管如此 PhpStorm 抱怨:

返回值应为“ Car|null”,返回
\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Model

PhpStorm PHPDoc 返回语句上的类型注释

将表达式的结果赋值给一个带注释的变量可以解决警告,但会引入一个“冗余”变量!

/** @var ?self $redundant */
$redundant = (new self())->newQuery()->firstWhere('color', '=', $color);
return $redundant;
Run Code Online (Sandbox Code Playgroud)

那么,在 PhpStorm 中是否有一种方法可以return明确地为语句表达式的值强制执行内联类型注释Car|null,而不引入冗余变量或指定所有预期的返回类型?

php phpdoc phpstorm laravel type-annotation

8
推荐指数
1
解决办法
349
查看次数

PHP 8 属性

我在我的项目中使用 PHP8、Symfony 5.2 和 Doctrine 3.0,但是自Doctrine 2.9以来允许的 PHP 8 属性似乎不起作用。

use Doctrine\ORM\Mapping\Entity;

**
* @Entity(repositoryClass="App\Repository\MyClassRepository")
*/
class MyClass
{
Run Code Online (Sandbox Code Playgroud)

工作正常。

use Doctrine\ORM\Mapping\Entity;

#[Entity(repositoryClass: MyClassRepository::class)]
class MyClass
{
Run Code Online (Sandbox Code Playgroud)

返回[critical] Uncaught PHP Exception Doctrine\ORM\Mapping\MappingException: "Class "App\Entity\MyClass" is not a valid entity or mapped super class." at .../vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/MappingException.php line 378

这是我的composer.json:

"composer/package-versions-deprecated": "1.11.99.1",
"doctrine/doctrine-bundle": "^2.3",
"doctrine/doctrine-migrations-bundle": "^3.1",
"doctrine/orm": "^3.0",
"symfony/console": "5.2.*",
"symfony/dotenv": "5.2.*",
"symfony/flex": "^1.3.1",
"symfony/framework-bundle": "5.2.*",
"symfony/proxy-manager-bridge": "5.2.*",
"symfony/yaml": "5.2.*"
Run Code Online (Sandbox Code Playgroud)

php symfony doctrine-orm symfony5

7
推荐指数
1
解决办法
5794
查看次数

Symfony 4 启动会话

symfony 新手,我正在尝试开始我的第一个会话

这是我的整个代码位于public/php/session.php

use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\Session\SessionInterface;

$session = new Session();
$session->start();
Run Code Online (Sandbox Code Playgroud)

我收到错误Uncaught Error: Class 'Symfony\Component\HttpFoundation\Session\Session' not found

phpstorm没有报错,我需要安装模块吗?我尝试过composer require session,但不起作用

handler_id: ~我还尝试了symfony doc 方法config/packages/framework.yaml

使用此方法,不会出现错误消息,但也不会出现会话 cookie

这是我的控制器:

class HomeController extends AbstractController {

 // start session

  public function index(SessionInterface $session) {
   $session->set('foo', 'bar');
   $session->get('foo');
  }

  /**
  * @Route("/", name="home")
  */

  public function homepage(){
   return $this->render('home.html.twig');
  }

 }
Run Code Online (Sandbox Code Playgroud)

php symfony symfony4

5
推荐指数
1
解决办法
1万
查看次数

如何将配置参数放入命令中

我正在尝试将配置参数放入命令中。

app/config/config.yml我已经在键下添加了参数parameters

我可以在控制器中使用它$this->getParameter("PRAMETER_NAME")来手动执行一些操作。

我正在编写一个命令来通过 CRON 作业自动执行相同的操作。

我找不到如何获取命令中的参数。

php symfony symfony-3.4

4
推荐指数
1
解决办法
5747
查看次数

Symfony 进度条正在新线路上重新创建

Symfony 控制台进度条不是在同一行上前进,而是在新行上创建

 1/2 [==============>-------------]  50%
 ! [NOTE] No changes made to Categories/CategoriesSchema              


 2/2 [============================] 100%
 2/2 [============================] 100%
Run Code Online (Sandbox Code Playgroud)

我假设进度条只会在同一行上移动,直到操作完成。这是我的代码

$io = new SymfonyStyle($input, $output);
$progressbar = new ProgressBar($output, count($elements));
$progressbar->start();

foreach ($elements as $element) {

     //work on element
     io->note("No changes made to ".ucfirst($name));

     $progressbar->advance();
     $io->newLine();
}

$progressbar->finish();
Run Code Online (Sandbox Code Playgroud)

我做错了什么??

php symfony symfony-console

3
推荐指数
1
解决办法
4120
查看次数

在 Centos 7 上完全卸载并重新安装 PHP

我需要在 Centos 7 上尝试 PHP 5.6 和 5.5。因此,我在 PHP 7.1 的完美工作安装之上安装了它们。我按照此处的说明进行操作: https: //www.mojowill.com/geek/howto-install-php-5-4-5-5-or-5-6-on-centos-6-and-centos-7/

基本上,我编辑了 remi repo 配置文件以启用 PHP 5.6 和 5.5 并安装了 PHP 5.6。我测试了我想要测试的内容,并尝试通过禁用存储库并卸载所有 php 然后重新安装来切换回来。现在我遇到了问题。

这是症状和我尝试过的方法。

我收到一条关于 WordPress 安装的消息“ Your PHP installation appears to be missing the MySQL extension which is required by WordPress.

# php -v
PHP **7.2.14** (cli) (built: Jan  8 2019 14:05:15) ( NTS )
Copyright (c) 1997-2018 The PHP Group

<? phpinfo() ?> works but says php version **7.1.24**
Run Code Online (Sandbox Code Playgroud)

我尝试检查 php-mysql 是否仍然安装:

# yum …
Run Code Online (Sandbox Code Playgroud)

php mysql installation yum centos7

3
推荐指数
1
解决办法
3万
查看次数

PhpStorm终端:Cygwin颜色不起作用

我有PhpStorm 2016.2,并且在Shell路径中添加了Cygwin,如下所示: "C:\cygwin64\bin\env.exe" CHERE_INVOKING=1 /bin/bash.exe

它工作正常,但颜色不起作用。对于为例我?[32m Name不是已经Name在绿色。

我尝试了几种方法,例如添加插件Grep Console以支持ANSI Color,但是没有用。

使用具有多种ANSI颜色的线真的很难?[39m ?[32m Scheme ?[39m ?[32m Host ?[39m ?[32m Path

请随时询问有关该问题的更多信息。谢谢。

PS我在Windows 10上。

编辑

当我/usr/bin/which php在PHPStorm终端中执行操作时,我得到了/cygdrive/d/wamp2/bin/php/php5.6.16/php。我的WAMP中有php5.6.16和php7.0.0,目前正在使用php7.0.0。

编辑2我所以现在添加了php7.0.0一个$ PATH我有/cygdrive/d/wamp2/bin/php/php7.0.0/php,当我做/usr/bin/which php。但是主要问题仍然存在。

terminal cygwin wamp phpstorm symfony-console

2
推荐指数
1
解决办法
2805
查看次数

Symfony“未找到路线”

我最近用一个简单的控制器构建了一个新的 symfony 项目,用于读取 .csv 文件并将其内容输出到模板。我使用控制台生成了包和控制器,并为控制器提供了路由“/browse”。尝试运行时,(127.0.0.1:8000/browse) 它告诉我:“找不到用于“GET/browse”的路由”。

src/OpiumBundle/Controller/BrowseController.php

<?php

namespace OpiumBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

class BrowseController extends Controller {

    /**
     * @Route("/browse")
     */
    public function indexAction() {
        $varPath = $this->get('kernel')->getRootDir().'/../var';
        return $this->render('OpiumBundle:Browse:index.html.php', array(
            // ...
        ));
    }

}
Run Code Online (Sandbox Code Playgroud)

应用程序/配置/routing.yml

opium:
    resource: "@OpiumBundle/Resources/config/routing.yml"
    prefix: /

app:
    resource: '@AppBundle/Controller/'
    type: annotation
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法发布 debug:console 的输出,因为我的代表太低了。但有两个空位我猜他们不应该:

调试:路由器

opium_homepage             ANY      ANY      ANY    /                                  
homepage                   ANY      ANY      ANY    /
Run Code Online (Sandbox Code Playgroud)

php symfony

2
推荐指数
1
解决办法
8448
查看次数

Symfony 4,从数据夹具类获取根路径目录

在 Symfony 4 项目中,是否有一种正确的/symfony 方法可以从 Fixture 类中获取根路径目录?

最终目标:

当我部署我的网站时,我使用fixtures 类在我的数据库中加载一些“默认”数据。(可能这不是一个好习惯)

在这些默认数据中,我需要存储项目的根路径目录,因为我需要来自项目中自定义 utils 和服务类的这些信息。

我知道有多种方法可以做到这一点。目前,我对绝对路径进行了硬编码(<= 有史以来最丑陋的方式;))

symfony symfony4

0
推荐指数
1
解决办法
2228
查看次数