小编yiv*_*ivi的帖子

如何确定是什么阻止 Composer 安装最新版本的软件包?

我正在使用 Composer Dependency Manager for PHP,它不会安装最新版本的软件包。如何确定是什么阻碍了 Composer 安装最新版本?

例如,我symfony/consolecomposer.json版本中设置为:

"symfony/console": "~3.1",
Run Code Online (Sandbox Code Playgroud)

如果我运行composer outdated它会显示我symfony/console安装了 3.1.4 版本,并且该版本 3.3.5 可用并且与 semver 兼容。

$ composer outdated --no-ansi
symfony/console                    v3.1.4  ! v3.3.5  Symfony Console Component
Run Code Online (Sandbox Code Playgroud)

但是,如果我对更新进行试运行,则只有到 3.2.12 版为止。

$ composer update --dry-run --with-dependencies symfony/console
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 2 installs, 2 updates, 0 removals
  - Updating symfony/polyfill-mbstring (v1.2.0) to symfony/polyfill-mbstring (v1.4.0)
  - Installing psr/log (1.0.2)
  - Installing symfony/debug (v3.3.5) …
Run Code Online (Sandbox Code Playgroud)

php composer-php

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

使用公共类实现 Monolog

我成功地实现了用于测试目的的 Monolog 记录器。现在我正在尝试在项目中使用它。该项目不使用任何MVC框架。

我正在尝试编写一个公共类文件来包装对 Monolog 实例的访问。

常用类文件: 文件:app_log.php

require 'autoload.php';
use Monolog\Logger;
use Monolog\Handler\RotatingFileHandler;
use Monolog\Processor\UidProcessor;
use Monolog\Processor\WebProcessor;
use Monolog\Processor\MemoryUsageProcessor;
use Monolog\Processor\ProcessIdProcessor;
use Monolog\Formatter\LineFormatter;

class app_log {
  public function info(){
    $logger = new Logger('applog');
    $handler = new RotatingFileHandler('useractivity.log', 0, Logger::INFO);
    $handler->setFormatter(new LineFormatter("[%datetime%] %extra.process_id% %channel%.%level_name%: %message% %extra% %context% \n"));
    $logger->pushHandler($handler);
    $logger->pushProcessor(new WebProcessor);
  }  
}
Run Code Online (Sandbox Code Playgroud)

其他文件:users.php

include_once 'app_log.php';
class users extends dbconnector{
    function login(){
      // Some project code. 
      $logger = new app_log();
      $logger->info('User logged successfully');
    }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,效果很好,我想包括文件名、方法名称、请求参数。但我得到的是app_log.php文件名users.php,而方法名称则 …

php oop logging monolog

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

加(+)是基本正则表达式的一部分吗?

最近我被告知,+(前一个模式/字符的一次或多次出现)不是基本正则表达式的一部分.甚至没有写成\+.

这是关于最大兼容性的问题.

我的印象是......

echo "Hello World, I am an example-text" | sed 's#[^a-z0-9]\+#.#ig'
Run Code Online (Sandbox Code Playgroud)

...总是导致:

Hello.World.I.am.an.example.text
Run Code Online (Sandbox Code Playgroud)

但后来我被告知"它取代了所有字符,而不是小写字母或数字后跟+",它与...相同[^a-z0-9][+].

所以我真正的问题是:是否有任何正则表达式的定义或实现不同于x+x\+不相同xx*.

regex standards sed

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

如何在PHP Symfony 4中获取POST全局变量?

我在Symfony 4中获取POST全局变量的结果时遇到一个非常奇怪的问题。

我尝试过这种方式:

$date = $request->request->get('date');
Run Code Online (Sandbox Code Playgroud)

当日历输入的日期更改时,这实际上是我发送AJAX请求的方式:

onSelect: function(date, instance) {
    $.ajax({
      url : 'home',
      type : 'POST',
      data : {'date':date},
      dataType : 'html',
      success : function(code_html, statut){
        console.log(statut);
      },

      error : function(resultat, statut, erreur){

      },

      complete : function(resultat, statut){

      }          
    });
Run Code Online (Sandbox Code Playgroud)

onSelect回调成功接收到我想要的日期值。

这个结果显示了200个成功代码,其中date变量的值正确:

分析器屏幕截图

但是$ date是null

php ajax symfony4

4
推荐指数
5
解决办法
1878
查看次数

如何更改 WP-API 的 JWT 身份验证上的 JSON 响应?

我使用“JWT WP-API 身份验证”插件来登录并生成令牌。

在 JSON 响应中,我只有表中的一些数据wp_users

我如何更改它以从wp_usermeta响应表中获取其他一些值?我想知道用户状态级别。

php wordpress jwt

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

“恢复出厂设置”任何迁移的最佳方法是什么

在迁移过程中重置数据库的最佳方法是什么?

这是我尝试过的。

  1. 删除所有迁移并删除所有数据库表。然后运行

php bin/console doctrine:mi:diff

php bin/console doctrine:mi:mi

那是行不通的。

  1. 尝试像这样一次运行单个版本

php bin/console doctrine:migrations:migrate 'DoctrineMigrations\Version20200722104913'

  1. 我试过这个:

php bin/console doctrine:database:drop --force

php bin/console doctrine:database:create

php bin/console doctrine:mi:mi

问题(详细):

我所做的一切都会导致相同的结果。

Doctrine 认为我仍然有一些表要生成,但这些表早已消失(不再存在于实体中)

这就是为什么我有这个错误:

执行“DROP TABLEgreetings_card_category”时发生异常:

SQLSTATE[42S02]:未找到基表或视图:1051 未知表“symfony.greetings_card_category”

我也收到这个警告

[警告] 数据库中有 6 个先前执行的迁移,但它们不是注册的迁移。

在我的迁移目录中,我只有两个迁移:

Version20200722104913.php
Version20200722143619.php
Run Code Online (Sandbox Code Playgroud)

如果有帮助的话,这是状态。

bin/console do:mi:status

| Versions             | Previous             | DoctrineMigrations\Version20200717093052                               |
|                      | Current              | DoctrineMigrations\Version20200722150530                               |
|                      | Next                 | DoctrineMigrations\Version20200722104913                               |
|                      | Latest               | DoctrineMigrations\Version20200722143619                               |
|--------------------------------------------------------------------------------------------------------
| Migrations           | Executed             | 6                                                                      |
| …
Run Code Online (Sandbox Code Playgroud)

doctrine doctrine-orm

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

DNS 解析器问题 Composer 2

作曲家版本:2.0.4

操作系统:macOS 10.15.7

当我运行 composer 诊断时,我遇到了 DNS 解析器问题,如附图所示

我可以从终端 ping getcomposer.org、packagist.org、github.com - 所有站点。

curl -i packagist.org -L 也按预期工作,没有任何错误

然而,通过作曲家诊断,我遇到了 DNS 解析器问题

这在我将 PHP 从 7.4.1 升级到 7.4.12 并更新到 composer 2 之后开始发生

可能是什么问题,我该如何解决

作为可搜索的文本代码 - composer 2.0.4 诊断失败

$ composer diagnose
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: FAIL
The following exception probably indicates you have misconfigured DNS resolver(s)
[Composer\Downloader\TransportException] Resolving timed out after 10003 milliseconds
Checking https connectivity to packagist: FAIL
The following exception …
Run Code Online (Sandbox Code Playgroud)

php composer-php

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

在实体存储库上调用方法时出现“警告:潜在的多态调用”

我的实体Item有一个ItemRepository具有该功能的存储库() findItemCount()。当我使用

\n
$repository = $em->getRepository(Item::class);    \n$items = $repository->findItemCount();\n
Run Code Online (Sandbox Code Playgroud)\n

我收到警告:

\n
\n

潜在的多态调用。根据作为参数传递的实际类实例,代码可能无法运行。

\n
\n

此外,自动完成功能也不建议我使用“findItemCount”功能。我的错误是什么?

\n

控制器:

\n
/**\n * Artikel Liste\n * @Route("/item/list", name="app_item_list")\n * @param EntityManagerInterface $em\n * @return Response\n */\npublic function listItems(EntityManagerInterface $em): Response\n{\n    $repository = $em->getRepository(Item::class);\n    $items = $repository->findItemCount();\n\n    return $this->render('item_admin/itemList.html.twig', [\n        'items' => $items,\n        'title' => 'Artikel \xc3\x9cbersicht',\n        'blocked' => false\n    ]);\n}\n
Run Code Online (Sandbox Code Playgroud)\n

项目.php

\n
<?php\n\nnamespace App\\Entity;\n\nuse Doctrine\\Common\\Collections\\ArrayCollection;\nuse Doctrine\\Common\\Collections\\Collection;\nuse Doctrine\\ORM\\Mapping as ORM;\nuse Doctrine\\ORM\\Mapping\\OrderBy;\n\n/**\n * @ORM\\Entity(repositoryClass="App\\Repository\\ItemRepository")\n */\nclass Item\n{\n    /**\n …
Run Code Online (Sandbox Code Playgroud)

php symfony doctrine-orm phpstorm

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

unserialize() 请在第二个参数中指定允许反序列化的类

在我的 Symfony 应用程序中,我有一个User序列化的实体。在该unserialize()方法中,我这样做了:

    public function unserialize($serialized)
    {
        [
            $this->id,
            $this->email,
            $this->password,
            $this->enabled
        ] = unserialize($serialized);
    }
Run Code Online (Sandbox Code Playgroud)

但 PhpStorm 用红色下划线unserialize($serialized)显示以下消息:

请在第二个参数中指定允许反序列化的类。

我不知道应该用什么作为第二个参数。经过一番研究,我发现我们可以这样写:

unserialize($serializeObj, ["allowed_classes" => true]);
Run Code Online (Sandbox Code Playgroud)

但我也发现了这一点:

unserialize($serializeObj, ["allowed_classes" => true]);
Run Code Online (Sandbox Code Playgroud)

我有点困惑,我不知道我应该在我的案例中放入什么,这样 PhpStorm 就不会抱怨这一点。

php serialization symfony php-7.3

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

如何在 Symfony 上验证密码?

我想验证用户的现有密码(以允许他们更改密码)。

我想走以下路线,但遇到了散列密码总是显示为不同散列的问题。我在用 UserPasswordHasherInterface

$hashedOldPassword = $passwordHasher->hashPassword(
        $user,
        $data['oldPassword']
    );

if ($hashedOldPassword === $user->getPassword()) {
    setNewPassword();
}
Run Code Online (Sandbox Code Playgroud)

php symfony symfony-security

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