我正在使用 Composer Dependency Manager for PHP,它不会安装最新版本的软件包。如何确定是什么阻碍了 Composer 安装最新版本?
例如,我symfony/console在composer.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) 我成功地实现了用于测试目的的 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,而方法名称则 …
最近我被告知,+(前一个模式/字符的一次或多次出现)不是基本正则表达式的一部分.甚至没有写成\+.
这是关于最大兼容性的问题.
我的印象是......
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*.
我在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。
我使用“JWT WP-API 身份验证”插件来登录并生成令牌。
在 JSON 响应中,我只有表中的一些数据wp_users。
我如何更改它以从wp_usermeta响应表中获取其他一些值?我想知道用户状态级别。
在迁移过程中重置数据库的最佳方法是什么?
这是我尝试过的。
php bin/console doctrine:mi:diff
php bin/console doctrine:mi:mi
那是行不通的。
php bin/console doctrine:migrations:migrate 'DoctrineMigrations\Version20200722104913'
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) 作曲家版本: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) 我的实体Item有一个ItemRepository具有该功能的存储库() findItemCount()。当我使用
$repository = $em->getRepository(Item::class); \n$items = $repository->findItemCount();\nRun 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}\nRun 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) 在我的 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 就不会抱怨这一点。
我想验证用户的现有密码(以允许他们更改密码)。
我想走以下路线,但遇到了散列密码总是显示为不同散列的问题。我在用 UserPasswordHasherInterface。
$hashedOldPassword = $passwordHasher->hashPassword(
$user,
$data['oldPassword']
);
if ($hashedOldPassword === $user->getPassword()) {
setNewPassword();
}
Run Code Online (Sandbox Code Playgroud)