小编Sam*_*tch的帖子

Composer需要本地包

我有几个库[Foo和Bar]我正在开发音乐会,但在技术上仍然是独立的东西.以前我刚刚重新定义了自动加载器"Foo\\": "../Foo/src",但是现在我已经为Foo添加了一个Guzzle依赖项,Bar翻转它的盖子,因为它不是它的依赖项之一.

目录结构:

/home/user/src/
    Foo/
        src/
            FooClient.php
        composer.json
    Bar/
        src/
            BarClient.php
        composer.json
Run Code Online (Sandbox Code Playgroud)

理论自动加载声明:[在Bar/composer.json]

"require": {
    "local": "../Foo/composer.json"
}
Run Code Online (Sandbox Code Playgroud)

示例代码:

require('vendor/autoload.php');

$f = new \Bar\BarClient(new \Foo\FooClient());
Run Code Online (Sandbox Code Playgroud)

如何在不设置本地Composer仓库的情况下解决此问题?我想将它们作为单独的包维护,只需要另一个包,并因此处理其他的依赖.

回答后编辑:

感谢infomaniac,我做了以下事情:

初始化git repo:

cd ~/src/Foo && git init && echo -e "vendor\ncomposer.lock" > .gitignore && git add ./ && git commit -m "Initial Commit"
Run Code Online (Sandbox Code Playgroud)

添加了作曲家配置:

"require": {
    "sammitch/foo": "dev-master"
},
"repositories": [{
    "type": "vcs",
    "url": "/home/sammitch/src/Foo"
}],
Run Code Online (Sandbox Code Playgroud)

然后composer update!

php composer-php

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

什么!*/表示.gitignore

使用git版本1.7.1,我试图排除除.php文件之外的所有文件.

我找到的工作解决方案依赖于命令 !*/

# Ignore Everything
*

# Except these files
!.gitignore
!*/
!*.php
Run Code Online (Sandbox Code Playgroud)

如果没有!*/,它将只包含*.php根目录中的文件.!*/这样做是什么让它起作用?

git gitignore

14
推荐指数
2
解决办法
5872
查看次数

在PHP中添加时间间隔的最佳方法是什么?

我想为现有日期增加时间.我有2个字符串变量:

$date     = "2013-01-05 10:55:15";
$interval =            "50:25:10";
Run Code Online (Sandbox Code Playgroud)

我想计算最终日期"2013-01-07 13:20:25".小时数可以大于23,这意味着这个时间间隔可能超过一整天.

最好的方法是什么?

php

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

启用php ext-xml?

在尝试使用Composer创建Symfony 4项目时,我收到以下错误:

steve@laptop ~ $ php composer.phar create-project symfony/skeleton my-proj
Installing symfony/skeleton (v4.0.0)
  - Installing symfony/skeleton (v4.0.0): Loading from cache
Created project in my-proj
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - symfony/framework-bundle v4.0.1 requires ext-xml * -> the requested PHP extension xml is missing from your system.
    - symfony/framework-bundle v4.0.0 requires ext-xml * -> the requested PHP extension xml is missing from …
Run Code Online (Sandbox Code Playgroud)

php ubuntu symfony

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

错误“超出了最大 DNS 交互条款限制 (10)”

几天前,当我尝试为我的用户设置电子邮件活动时,我的问题开始出现,它一直进入垃圾邮件!在 上发布我的电子邮件后email-tester.com,我意识到 SPF 记录有问题。现在我是网站和 DNS 以及所有这些的新手。我能够按照给我的教程进行操作,但仅此而已。

它说最大 SPF 是 10 但不知何故我是 21?

http://emailstuff.org/spf/check/borntolistbuild.com

这是我的域搜索内容的链接。正如您在访问 DNS 时所看到的,它显示超过 20 个!

我尝试创建一个子域,并认为这可能会将我的 SPF 重置为 0 或其他值,并且还尝试删除所有 DNS 内容以重置它(没有帮助)

  • 在 Godaddy 上购买的 .com
  • 来自 BlueHost 的托管
  • 电子邮件准备器是电子邮件八达通
  • 电子邮件发件人是 Amazon SES

我在谷歌上看到其他一些人也有这个问题,但我是一个新手,不明白他们在说什么。

email dns spf amazon-web-services

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

警告:ftp_get():删除操作成功

我有一些代码从我们的开发服务器传输备份,它随机似乎行为非常奇怪,并给出以下错误/输出:

Warning: ftp_get(): Delete operation successful. in /root/cron/get_dev_archives.php on line 106
ERR blahjob: Failed to get file: 2013-09-25_18-22-04-blahjob_dev18.tgz
PHP Warning:  ftp_get(): Delete operation successful. in /root/cron/get_dev_archives.php on line 106

Warning: ftp_get(): Delete operation successful. in /root/cron/get_dev_archives.php on line 106
ERR blahjob: Failed to get file: 2013-09-25_18-22-37-blahjob_dev19.tgz
PHP Warning:  ftp_get(): Delete operation successful. in /root/cron/get_dev_archives.php on line 106

Warning: ftp_get(): Delete operation successful. in /root/cron/get_dev_archives.php on line 106
ERR blahjob: Failed to get file: 2013-09-25_18-23-05-blahjob_dev5.tgz
PHP Warning:  ftp_get(): Delete operation successful. …
Run Code Online (Sandbox Code Playgroud)

php ftp

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

where 子句中包含多个条件的 PDO 准备语句

如果我使用 PDO 准备好的语句,并且我有一个如下查询:

SELECT cat_name, cat_id_PK, cat_amount
FROM categories
WHERE month=? AND is_recurring = '0'
ORDER BY cat_name ASC;

$results->bindValue(1, $cur_month);
Run Code Online (Sandbox Code Playgroud)

我还应该绑定 is_recurring 子句的值吗?“0”是硬编码的,我认为这不会让我容易受到 SQL 注入的攻击,但我想确认一下。我注意到在我正在查看的教程中,即使它不是传递的变量,它们也确实绑定了该值,这让我想知道我是否做得正确。

php mysql pdo sql-injection prepared-statement

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

Cloud SQL 上的证书验证

我发现,如果您通过 SSL 连接到 Cloud SQL 实例,服务器证书中提供的 CommonName 会my-project-123456:myinstance导致证书变得不可验证,因为客户端期望 CN 是主机名或 IP。

这个问题的每个解决方案似乎都相当于“只是禁用验证”,这对我来说是不可接受的,因为:

  1. 为什么 GCP 决定正确执行其他所有操作提供 CA 证书和客户端证书),却在身份验证方面失败了?通过禁用验证,您基本上是在说“我同意在某个时候接受 MITMed”。

  2. 由于 PIPA/HIPAA 的原因,我们无法快速、宽松地进行验证的项目怎么办?

  3. 不支持关闭验证的 mySQL 客户端怎么办?例如:在即将发布的 5.6.16 版本之前,所有使用 mysqlnd 的 PHP 5.6 mysql 库。

有没有办法让 SSL 在 Cloud SQL 上正常工作?

mysql ssl google-cloud-sql google-cloud-platform

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

Python 使用内部 CA 请求 SSLError

我的公司为内部服务运营着自己的内部 CA,我需要访问连接 Ansible AWX [python] 以与我们使用由该 CA 签署的证书的内部服务之一交谈。基本上:

  1. AWX旋转起来的容器awx_task/etc/pki/ca-trust/source/anchors安装在,它包含根CA证书。[双重检查]
  2. update-ca-trust运行,将 CA 证书捆绑到各种东西中,包括/etc/pki/tls/certs/ca-bundle.crt. [双重检查]
  3. requests 应该使用这个包。我在容器内或主机上找不到可以覆盖它的与 CA 相关的环境变量。

但是,当我触发在内部运行的 Ansible 游戏的测试运行时,awx_task出现错误:

requests.exceptions.SSLError: HTTPSConnectionPool(host='vault.example.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed ( _ssl.c:618)'),))

在主机上我可以运行

import requests
requests.get("https://vault.example.com")
Run Code Online (Sandbox Code Playgroud)

并得到200回应,如果我strace在这个过程中看到它正在阅读/etc/pki/tls/certs/ca-bundle.crt。但从里面awx_task我得到同样的requests.exceptions.SSLError上面。不幸的是,Docker 不允许我在容器内运行 strace,所以我看不到它试图读取的内容。

但是如果我将代码修改为:

import requests
requests.get("https://vault.example.com", verify="/etc/pki/tls/certs/ca-bundle.crt")
Run Code Online (Sandbox Code Playgroud)

200从容器内部得到响应。

我在这里缺少什么?

python ssl ansible

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

php中callable的使用

我试图在下面的实现中模仿 php 的内置 usort 函数定义:

class heapSort {
    static function hsort(array &$array, callable $cmp_function){
       // logic
    }
}

class utility{
    static function mycomparator(){
        // logic
    }
}

$array = array(5,3,8,1);
$callback = array('utility','mycomparator');
heapSort::hsort($array, $callback);
Run Code Online (Sandbox Code Playgroud)

虽然变量$callback是“可调用的”,但为什么我会遇到致命错误?

传递给 heapSort::hsort() 的参数 2 必须是 callable 的实例。

更具体地说,我如何制作/类型转换$variable为可调用的?

php callable

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