小编Dav*_*son的帖子

使用什么而不是Twig_Loader_String

我看到Twig_Loader_String该类已被弃用,将在Twig 2.0中删除.此外,来源中的评论表明它应该" 永远不会被使用 ".

包含Twig模板的字符串有许多有效用例.

问题是:用什么代替?

symfony twig

16
推荐指数
4
解决办法
8264
查看次数

如何在Swift中使用Cocoa在macOS中打开另一个窗口

我正在开发一个macOS应用程序,它在表格视图中显示客户主记录列表.双击表视图中的行应打开一个新窗口,用户可以在其中查看和编辑客户信息.

这是一个使用故事板和Swift的Xcode 8.3.3项目.
它不是文档或核心数据应用程序.

我有一个主窗口工作到表视图正确显示记录的点,相关的视图控制器正在接收双击事件并将它们记录到控制台.

我为编辑窗口创建了一个额外的窗口控制器和视图,并通过临时将其标记为初始控制器来验证其基本功能.

我无法弄清楚的是当用户双击一行时如何显示该窗口的新实例.

感谢@Joshua Nozzi,我更接近了.这是此时的代码.

let storyboard = NSStoryboard(name: "Main", bundle: nil)
if let windowController = storyboard.instantiateController(withIdentifier: "xyzzy") as? NSWindowController
{
  windowController.showWindow(self)
}
Run Code Online (Sandbox Code Playgroud)

它正在产生一个

(故事板:0x620000000680)不包含标识符为'xyzzy'的控制器

错误.

macos cocoa swift xcode8

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

Symfony 4 中的私有自定义包在哪里?

我在 Symfony 项目中使用了许多私有的自定义包。在 Symfony 3 下,它们位于 src 的子目录中:

src/
    DSL/
      DSLLibraryBundle/
      DSLTelnetBundle/
      ...
    SiteBundle/      # (or AppBundle)
Run Code Online (Sandbox Code Playgroud)

在 Symfony 4 下,特定于应用程序的包消失了,我不清楚我的自定义包应该放在什么地方。

关于捆绑包的文档(https://symfony.com/doc/current/bundles/best_practices.html#bundles-naming-conventions)没有提供放置自定义捆绑包的具体建议。

我曾尝试将我的 DSL 目录直接放在项目目录和 src/ 下。无论哪种方式,我最终都会遇到未定义的类错误。

我目前有:

src/
    DSL/
        LibraryBundle/
            DSLLibraryBundle.php
Run Code Online (Sandbox Code Playgroud)

捆绑文件:

// src/DSL/DSLLibrary/DSLLibraryBundle.php:

namespace DSL\LibraryBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class DSLLibraryBundle extends Bundle
{

}
Run Code Online (Sandbox Code Playgroud)

bundles.php 中的条目:

DSL\LibraryBundle\DSLLibraryBundle::class => ['all' => true],
Run Code Online (Sandbox Code Playgroud)

运行控制台命令时的当前错误:

PHP 致命错误:未捕获的 Symfony\Component\Debug\Exception\ClassNotFoundException:尝试从命名空间“DSL\LibraryBundle”加载类“DSLLibraryBundle”。

几个注意事项:
- 我的自定义包不是通过 Composer 安装的
- 一旦我开始工作,实际的 DSL/ 目录将是一个符号链接

symfony symfony4

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

不调用进程信号处理程序

我正在开发一个用 PHP 编写的预分叉 TCP 套接字服务器。

守护进程(父进程)分叉一些子进程,然后等待它被告知退出并且子进程全部消失或收到信号。

SIGINT 和 SIGTERM 导致它向所有孩子发送 SIGTERM。

孩子们设置了他们自己的信号处理程序:SIGTERM 导致一个干净的退出。SIGUSR1 导致它转储一些状态信息(只需在下面的示例代码中打印它接收到的信号)。

如果子进程意外退出,父进程将启动一个新子进程,除非 SIGINT 处理程序设置了退出标志。

在守护进程初始化期间分叉的初始子进程按预期对信号做出反应。

新分叉子替换意外子退出,响应信号。
以下代码可用于演示这一点:

<?php
$children = [];
$exiting = false;

pcntl_async_signals( true );
pcntl_signal( SIGCHLD, 'sigchldHandler' );
pcntl_signal( SIGINT, 'sigintHandler' );
pcntl_signal( SIGTERM, 'sigintHandler' );

// Fork our children.
for( $ii = 0; $ii < 1; $ii++ )
{
  startChild();
}

// Forks a single child.
function startChild()
{
  global $children;

  echo "Parent: starting child\n";
  $pid = pcntl_fork();
  switch( true ) …
Run Code Online (Sandbox Code Playgroud)

php pcntl php-7.2

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

VSCode 抱怨解决我的环境需要太长时间

当我从 Dock 启动 VSCode 时,它​​总是抱怨

解析您的 shell 环境需要很长时间。请
检查您的外壳配置。

然后稍后

无法在合理的时间内解析您的 shell 环境。
请检查您的外壳配置。

根据这个页面,Resolving Shell Environment is Slow,如果 .bashrc 需要三秒以上,则显示第一条消息,如果需要十秒以上,则显示第二条消息。

我在 VSCode 中打开了一个终端并获取了我的 .bashrc 文件

dpatterson@dpconsulting$ time source ~/.bashrc
real    0m1.448s
user    0m0.524s
sys     0m0.671s

dpatterson@dpconsulting$ 
Run Code Online (Sandbox Code Playgroud)

如您所见,只需不到 1.5 秒。

环境:

  • MacOS 莫哈韦沙漠 10.14.6
  • VSCode 1.53.0

希望有人知道是什么导致了这种情况。
除此之外,也许有人可以将我指向实际生成这些错误的代码。

TIA

visual-studio-code

5
推荐指数
2
解决办法
3696
查看次数

扩展FOSUserBundle密码验证以要求特殊字符

我正在使用FOSUserBundle.我已经使用其他类变量实现了自己的用户实体.注册,登录和丢失的密码正在按预期工作.:-)

我需要为密码验证添加其他要求.我在Symfony文档中找到了一篇Symfony文章.本文介绍如何创建验证方法并使用Callback约束在validation.xml文件中引用它.我已经实现了回调并更改了validation.xml,所有内容都适用于注册.

我还没想到的是如何通过丢失的密码链接或更改密码页面来更改密码.

建议和文档指针将非常受欢迎.

提前致谢.

symfony fosuserbundle

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

为什么我的Symfony 2缓存加热器被多次调用?

我在Symfony 2应用程序中的一个捆绑包具有自定义缓存加热器.

从控制台运行并以dev模式运行时,它会向stdout写入一条已被调用的通知.

有时,并非总是如此,对于单个控制台缓存,它被多次调用:清除命令,如通过写入stdout的多个通知所证明的那样.

有人可以解释为什么会这样吗?这是正常的吗?是否所有缓存加热器都被称为多次?

环境:

  • Ubuntu 14.04.3
  • PHP 7.0.2-4
  • Symfony 2.7.9

------编辑21-Feb-2016 08:36 -------

由于各种原因(大小,NDAs等)按实际来源发布是不切实际的.所以,我创建了一个带缓存加热器的小小包,在调用时只是回显它的类名.

正如您在下面的输出中看到的那样,它被调用两次.

//
// The cache warmer.
//
namespace SoBundle\Listener;
use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerInterface;

class CacheWarmer implements CacheWarmerInterface
{
    public function isOptional()
    {
        return false;
    }

    public function warmUp( $cacheDir )
    {
        echo __CLASS__ . '()' . PHP_EOL;
    }
}

#
# The service definition.
#
services:
    so.cache_warmer:
        class: SoBundle\Listener\CacheWarmer
        tags:
            - { name: kernel.cache_warmer }

#
# Clearing the cache...
#
$ console cache:clear
Clearing the …
Run Code Online (Sandbox Code Playgroud)

php caching symfony

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

为什么Symfony 3.3.13源代码会产生弃用警告(不在我的代码中)?

我在Symfony 3.3.13全栈应用程序中收到了弃用通知.

自Symfony 3.3以来,自动装配类型已被弃用,将在4.0中删除.使用别名代替"Psr\Log\LoggerInterface".

请注意,这来自Symfony源代码,而不是我的代码.

单击"显示跟踪"显示它位于文件vendor/symfony/monolog-bundle/DependencyInjection/MonologExtension.php中.

代码是:

if (method_exists('Symfony\Component\DependencyInjection\Definition', 'addAutowiringType')) {
         $container->getDefinition('monolog.logger')->addAutowiringType('Psr\Log\LoggerInterface');
    }
Run Code Online (Sandbox Code Playgroud)

我怀疑我需要更新我的composer.json文件中的monolog-bundle版本,但是无法弄清楚正确的版本.它目前设置为"~2.8".

symfony deprecation-warning

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