小编geo*_*eoB的帖子

strtotime的版本差异("上个月的第一天")?

在包含的脚本中

date('Y-m-d', strtotime('first day of last month'))
Run Code Online (Sandbox Code Playgroud)

在版本5.3.10(localhost)中,我得到了例如'2012-03-01'.

在版本5.2.17(远程主机)中我得到'1969-12-31'.

是否有表达式会返回两个版本的预期结果(例如,'2012-03-01')?

php date

9
推荐指数
2
解决办法
8564
查看次数

当 Composer 连接到 GitHub 时,我会收到有关弃用身份验证方法的警告。我应该使用什么身份验证配置?

GitHub 已开始发送有关已弃用身份验证的电子邮件,但我还没有找到详细说明auth.json在新制度下作曲家应该是什么样子的资源。

我的要求相对简单 - 使用 composer 更新开发中的 Symfony 应用程序,并偶尔尝试其他存储库。

有了这个,我的原始配置(自动构建)...

{
    "github-oauth": {
        "github.com": "(a string)"
    }
}
Run Code Online (Sandbox Code Playgroud)

...我收到此警告:

...您的个人访问令牌...用作查询参数的一部分以通过 GitHub API 访问端点...请改用 Authorization HTTP 标头...

但是当我尝试使用其他配置时:

{
    "http-basic": {
        "github.com": {
            "username": " my email address",
            "password": " my password "
        }    }
}
Run Code Online (Sandbox Code Playgroud)

我收到另一个警告:

您最近使用 Composer/1.9.1 通过 GitHub API 使用密码访问端点……我们建议改用具有适当范围的个人访问令牌 (PAT) 来访问此端点。

它到底应该是什么样子,为什么我会收到这些弃用警告?

php github composer-php

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

Composer内存在共享主机上耗尽

共享FreeBSD主机上以前工作的沙箱现在无法运行composer update或安装内存耗尽错误.在昨天之前,我能够顺利运行php ./composer.phar update.我不相信需要更多的内存.我可以在没有任何问题的情况下在Windows系统上更新项目.内存大小以外的哪些变量会导致内存耗尽错误?

为了测试这个,我将.../vendor和composer.lock文件的内容移动到另一个目录然后运行php ./composer.phar install --prefer-dist.[Composer位于项目目录中,因此我可以在本地更新它,而不是希望主机主机更新它.]上面的命令导致:

% php ./composer.phar install --prefer-dist
Loading composer repositories with package information
Updating dependencies (including require-dev)
PHP Fatal error:  Allowed memory size of 1073741824 bytes exhausted (tried to allocate 134217728 bytes) in phar:///home/projectmana/www3.projectmana.org/composer.phar/src/Composer/DependencyResolver/Solver.php on line 220

Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 134217728 bytes) in phar:///home/projectmana/www3.projectmana.org/composer.phar/src/Composer/DependencyResolver/Solver.php on line 220
Run Code Online (Sandbox Code Playgroud)

Composer是版本1.20

composer.json使用:

{
    "name": "truckee/projectmana",
    "license": "MIT",
    "type": "project",
    "description": "Project MANA administrative application", …
Run Code Online (Sandbox Code Playgroud)

php symfony composer-php

8
推荐指数
3
解决办法
5972
查看次数

Symfony2:对ArrayCollection的测试给出了"无法访问的字段"

在添加ArrayCollection成员的表单的功能测试中,有以下声明:

$ form ['client [members] [1] [fname]'] ='Benny';

使用DOM检查器验证了字段名称.

此行的控制台输出是:

InvalidArgumentException: Unreachable field "members"

G:\Documents\workspace\sym\vendor\symfony\symfony\src\Symfony\Component\DomCrawler\Form.php:459
G:\Documents\workspace\sym\vendor\symfony\symfony\src\Symfony\Component\DomCrawler\Form.php:496
G:\Documents\workspace\sym\vendor\symfony\symfony\src\Symfony\Component\DomCrawler\Form.php:319
G:\Documents\workspace\sym\src\Mana\ClientBundle\Tests\Controller\ClientControllerTest.php:57
Run Code Online (Sandbox Code Playgroud)

应该使用什么方法来测试添加ArrayCollection成员?

按要求编辑(nb,跟随重定向已开启):

    //link to trigger adding household member form
    $link = $crawler->selectLink('Add household member')->link();
    $crawler = $client->click($link);
    $form = $crawler->selectButton('Add client')->form();
    $form['client[members][1][fname]'] = 'Benny';
    $form['client[members][1][dob]'] = "3/12/1999";
    $crawler = $client->submit($form);
    $this->assertTrue($crawler->filter('html:contains("Client View Form")')->count() > 0);
Run Code Online (Sandbox Code Playgroud)

phpunit symfony

7
推荐指数
2
解决办法
4674
查看次数

Symfony Webpack:无法从Webpack中找到入口点文件

安装Webpack Encore后,一个相对新鲜的Symfony 4.1.7项目会抛出错误

在呈现模板期间抛出异常("无法从Webpack中找到入口点文件:文件".../public/build/entrypoints.json"不存在.")

{{ encore_entry_link_tags('app') }} 启动时模板包含的位置 http://127.0.0.1:8000/

我错过了什么?

$ yarn encore dev
Running webpack ...

 DONE  Compiled successfully in 1974ms

 I  3 files written to public\build
Done in 3.33s.
Run Code Online (Sandbox Code Playgroud)

.../public/build 包含

app.css
app.js
manifest.json
Run Code Online (Sandbox Code Playgroud)

本地Symfony版本:

symfony/webpack-encore-bundle       v1.0.0
symfony/webpack-encore-pack         v1.0.3
Run Code Online (Sandbox Code Playgroud)

webpack.config.js:

var Encore = require('@symfony/webpack-encore');

Encore
    // the project directory where compiled assets will be stored
    .setOutputPath('public/build/')
    // the public path used by the web server to access the previous directory
    .setPublicPath('/build')
    .cleanupOutputBeforeBuild()
    .enableSourceMaps(!Encore.isProduction())
    // uncomment to create hashed …
Run Code Online (Sandbox Code Playgroud)

php symfony webpack

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

Symfony2:无需密码即可编辑用户

在我的应用程序中,只有管理员用户可以创建并理论上编辑用户.到目前为止,仅使用Symfony安全系统(不需要FOSUserBundle管理 - 不需要复杂性),创建具有不同角色的用户就可以了.完全逃避我的挑战是如何在不知道用户密码的情况下编辑用户.我一直遇到预期的验证错误

密码不能为空

.如何完成编辑?我肯定错过了一些非常基本的东西.

编辑动作:

    public function editAction($id) {
        $em = $this->getDoctrine()->getManager();
        $user = $em->getRepository('ManaClientBundle:User')->find($id);
        $form = $this->createForm(new UserType(), $user);
        return array(
            'form' => $form->createView(),
            'user' => $user,
            'title' => 'Edit user',
            );
   }
Run Code Online (Sandbox Code Playgroud)

更新动作:

   public function updateAction(Request $request, $id) {
        $em = $this->getDoctrine()->getManager();
        $user = $em->getRepository('ManaClientBundle:User')->find($id);
        $originalPassword = $user->getPassword();
        $form = $this->createForm(new UserType(), $user);
        $form->bind($request);
        if ($form->isValid()) {
            $plainPassword = $form->get('password')->getData();
            if (!empty($plainPassword))  {  
                //encode the password   
                $encoder = $this->container->get('security.encoder_factory')->getEncoder($entity); //get encoder for hashing pwd later
                $tempPassword = …
Run Code Online (Sandbox Code Playgroud)

php security symfony

6
推荐指数
2
解决办法
7164
查看次数

Symfony2“链中找不到类”处于两个捆绑关系中

在尝试定义捆绑之间的一对多关系时,会发生以下情况:

在链配置的名称空间Mana \ SplitBundle \ Entity中找不到类'Mana \ ClientBundle \ Entity \ Member'

更新3:

我现在看到了矛盾的答案,即这种关系可以而且不能实现。假设它可以(因为在stackoverflow上的其他人似乎已经做到了),除了在AppKernel.php中注册包并在实体中输入注释外,还需要什么配置?在resolve_target_entity_listener没有出现有所作为。

更新2:

好吧,我知道我在这里没有深度,但这是我在尝试显示Client实体时逐步执行代码时观察到的。

探查器中的错误消息

在Mana \ SplitBundle \ Entity \ Client#members上指定的目标实体'Mana \ ClientBundle \ Entity \ Member'未知或不是实体。

之所以会发生,是因为SchemaValidator评估$cmf->isTransient($assoc['targetEntity'])为true,即Member实体中的targetEntity。PHPdoc注释建议未加载该实体的元数据。如果我正确理解这一点,则意味着未加载有关该关系的注释。但是观察变量值表明注释已被阅读。

我是否完全错过了一些显而易见的事情?还是我在左场太远了?

更新1:

我已经确认doctrine:mapping:info可以检测到不正确的FQCN。数据装置正确。默认连接和拆分连接使用实体管理器和数据库连接都是正确的。该错误仍然存​​在,并且对于客户端实体中定义的任何关系(OneToMany或ManyToOne)都可能发生。

config.yml:

doctrine:
    dbal:
        default_connection: default
        connections:
          default:
            driver:   "%database_driver%"
            host:     "%database_host%"
            port:     "%database_port%"
            dbname:   "%database_name%"
            user:     "%database_user%"
            password: "%database_password%"
            charset:  UTF8
            mapping_types: 
                enum:       string
          split:
            driver:   "%database_driver2%"
            host:     "%database_host2%"
            port:     "%database_port2%"
            dbname:   "%database_name2%"
            user:     "%database_user2%"
            password: "%database_password2%"
            charset:  UTF8
            mapping_types: …
Run Code Online (Sandbox Code Playgroud)

php symfony doctrine-orm

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

Symfony2:无法使用DoctrineExtensions Mysql Year函数

到目前为止,我没有成功实施beberlei DoctrineExtensions.我需要MySQL Year()函数.错误是:

预期已知功能,得到'年'

所以我一定错过了什么.什么?

这是我到目前为止所获得的:

扩展安装在 ..\vendor\beberlei\lib\DoctrineExtensions

app/autoload.php读取:

use Doctrine\Common\Annotations\AnnotationRegistry;

$loader = require __DIR__.'/../vendor/autoload.php';
$loader->add('DoctrineExtensions', __DIR__.'/../vendor/beberlei/lib/DoctrineExtensions');

// intl
if (!function_exists('intl_get_error_code')) {
    require_once __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs/functions.php';

    $loader->add('', __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs');
}

AnnotationRegistry::registerLoader(array($loader, 'loadClass'));

return $loader;
Run Code Online (Sandbox Code Playgroud)

年份功能用途:

class ClientRepository extends EntityRepository {

    public function activeStatus($year, $status) {
        $em = $this->getEntityManager();
        $query = $em
                ->createQuery('select max(Year(ct.contact_date)) CY, 
                c.active
                from ManaClientBundle:Contacts ct
                join ManaClientBundle:Client c on ct.cid = c.id
                group by id')
            ->getResult();

        return $em->createQuery("select CY, count(CY) Status from
                $query where CY = $year and active = …
Run Code Online (Sandbox Code Playgroud)

php mysql symfony doctrine-orm

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

Symfony2:在链配置的命名空间中找不到类'Doctrine\Common\Collections\ArrayCollection'

尝试保持一对多关系时发生错误.特别是,客户可能有多个家庭成员; 给定的家庭成员与一个且仅一个客户相关联.[我是Symfony的新手,因此预计会出现错误!]您的指导感激不尽.

NB下面的Alternate控制器片段通过尝试将家庭表中的客户端ID设置为null来产生完整性约束错误.

客户端实体代码段

namespace Mana\AdminBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * Mana\AdminBundle\Entity\Clients
 *
 * @ORM\Table(name="clients")
 * @ORM\Entity
 */
class Clients
{
    protected $members;

    public function __construct()
    {
        $this->members = new ArrayCollection();
    }

    public function getMembers()
    {
        return $this->members;
    }

    public function setMembers(ArrayCollection $members)
    {
        $this->members = $members;
    }

    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     * @ORM\OneToMany(targetEntity="Household", mappedBy="clients")
     * @ORM\ManyToOne(targetEntity="EthDesc", inversedBy="clients")
     * @ORM\JoinColumn(name="eid", referencedColumnName="id")
     */
Run Code Online (Sandbox Code Playgroud)

家庭实体代码段

namespace Mana\AdminBundle\Entity;

use Doctrine\ORM\Mapping …
Run Code Online (Sandbox Code Playgroud)

persistence symfony doctrine-orm

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

Symfony2:不推荐使用FormView替换吗?

在版本<2.3中,属性

data-prototype="{% filter escape %}{% include 'ManaClientBundle:Member:member_prototype.html.twig' with {'form': form.members.get('prototype')} %}{% endfilter %}"
Run Code Online (Sandbox Code Playgroud)

允许原型显示为一行单元格.当然,在2.3中,这一行会产生错误

对象"Symfony\Component\Form\FormView"的方法"get"不存在

根据UPGRADE-2.1.md,不推荐使用get.它不能被建议的变量替换,因为它会产生类似的错误.我怎样才能(轻松?)像以前一样在2.3中渲染原型?运用

data-prototype="{{ form_widget(form.members.vars.prototype)|e }}"
Run Code Online (Sandbox Code Playgroud)

无论twig的资源:表格如何,无论div或表设置如何,都无法提供有用的解决方案.

原型

<tr id="member-form">
<td><input class="smallform" type="radio" name="household[isHead]" value="__name__"></td>
<td>{{ form_widget(form.include, {'attr': {'class':'smallform'}}) }}</td>
<td>{{ form_widget(form.fname, {'attr': {'class':'smallform'}}) }}</td>
<td>{{ form_widget(form.sname, {'attr': {'class':'smallform'}}) }}</td>
<td>{{ form_widget(form.dob, {'attr': {'class':'smallform'}}) }}</td>
<td>{{ form_widget(form.sex, {'attr': {'class':'smallform'}}) }}</td>
<td>{{ form_widget(form.ethnicity, {'attr': {'class':'smallform'}}) }}</td>
<td><a id="removeTr" class="smallbutton" href="#" onclick="removeTr(this)">Remove</a>
Run Code Online (Sandbox Code Playgroud)

php symfony twig

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

无法在 PHP 8.0 中加载 xdebug

在使用 PHP 8.0.2 的 Windows 10 中,尝试加载 3 个不同版本的 xdebug 均失败,Failed loading Zend extension 'php_xdebug-...尝试的版本如下:

php_xdebug-2.9.8-7.3-vc15-x86_64.dll
php_xdebug-3.0.3-8.0-vs16-x86_64.dll
php_xdebug-3.1.1-8.0-vs16-x86_64.dll
Run Code Online (Sandbox Code Playgroud)

文件名是否被引用都没有区别,包含路径也没有区别C:\\...区别C:/...

我缺少什么?

apache error.log 中的示例错误消息:

PHP Warning: Failed loading Zend extension 'php_xdebug-2.9.8-7.3-vc15-x86_64.dll' (tried: C:\\php\\ext\\php_xdebug-2.9.8-7.3-vc15-x86_64.dll (The specified module could not be found), C:\\php\\ext\\php_php_xdebug-2.9.8-7.3-vc15-x86_64.dll.dll (The specified module could not be found)) in Unknown on line 0

php.ini/xdebug:

[xdebug]
zend_extension="php_xdebug-2.9.8-7.3-vc15-x86_64.dll"
xdebug.mode=debug
xdebug.client_host=localhost
xdebug.client_port=9003
xdebug.idekey="netbeans-xdebug"
Run Code Online (Sandbox Code Playgroud)

阿帕奇是Apache/2.4.46 (Win64) OpenSSL/1.1.1h PHP/8.0.2

Windows 是Windows NT GWB-10 10.0 build 19042 (Windows 10) AMD64 …

php xdebug xdebug-3

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