没有作曲家的狂欢
Guzzle without composer
我需要使用sproutvideo php lib that requires Guzzle
Guzzle 需要安装 composer 并且不确定是否需要 运行,因为在某些文件中我发现
require 'vendor/autoload.php';
我从未使用过 composer,我在共享主机上,无法安装它
我从 github 下载 Guzzle
但不确定我是否解决了 autoload.php 工作人员以及是否会工作
您不应该选择手动安装 Sproutvideo,因为那比您想象的要麻烦得多。事实上,正如您发现的那样,它根本不会让您使用 Composer 来安装 Guzzle。
使用共享主机时(甚至使用具有 root 访问权限的专用服务器时),最好不要在该计算机上调用 Composer 来安装依赖项。你应该有办法把你的常规网站的文件放在共享主机上,也许用 FTP (警告:没有密码加密!避免它),SFTP,SCP,FTPS, WebDAV 等。无论您使用什么将文件从本地计算机复制到共享主机,您都应该使用它来复制 Composer 为您下载的文件。
这意味着您必须 运行 该本地计算机上的 Composer。你安装它和 运行 下载你需要的包所需的命令,并创建自动加载。之后就可以上传文件到共享主机了。
根据您的开发方式,完全可以上传然后摆弄共享主机上的文件,但我建议准备一个本地开发环境。这样,当您在代码中输入错误并立即上传时,您就不会意外关闭您的实时网站。
为了使用由 Composer 自动加载的 类,您只需包含位于 vendor/autoload.php
的文件(如果您的 PHP 文件不在根目录中目录,您必须使用正确的路径,很可能在前面加上 ../
一次或多次)。包含此文件后,您只需使用 类。请注意,您必须为 Sproutvideo 库使用正确的命名空间。
还有一件事:Sproutvideo 库目前没有发布版本,因此 Github 页面上的安装说明实际上是错误的,因为您无法解决发布版本。以此作为警告信号。此外,此库依赖于过时的 Guzzle 版本 3.7。 3.x系列最新版本为3.9.3,最晚维护到2015年底。这是一个额外的警告标志。您可能需要联系 Sproutvideo 的维护者和 ask to release a version and to update the dependency on Guzzle.
我正在寻找一种无需 Composer 即可安装 Guzzle 的方法(我将在生产服务器上进行设置,并且需要将新安装保持在最低限度)。 Guzzle 3.x 可以通过 PEAR 安装:
https://guzzle3.readthedocs.org/getting-started/installation.html
3.x 是旧版本,但我想它可以用于很多用途。
如果您是 运行 RedHat 或 Centos,EPEL 存储库有一个名为 "php-guzzle-Guzzle" 的软件包,可以通过 yum 安装。如果这样做,将 Guzzle 包含在 php 代码中的方法如下:
<?php
require "Guzzle/autoload.php";
您可以从此站点下载 Guzzle 的打包版本,无需 Composer 创建依赖项。
为我工作!谢谢
Download link: https://php-download.com/package/guzzlehttp/guzzle#all-versions
---------------------------------------------
HomeDgtInform.controller.php
---------------------------------------------
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
use GuzzleHttp\Psr7\Request;
class HomeDgtInform extends DefaultController
{
public static function getRootPath() {
return realpath(__DIR__ . "/../../");
}
public function getInfo()
{
set_include_path($this->getRootPath() . '/guzzlehttp_guzzle_7.0.0.0_beta1_require/');
require_once($this->getRootPath() ."/guzzlehttp_guzzle_7.0.0.0_beta1_require/vendor/autoload.php");
try {
$url = 'https://cat-fact.herokuapp.com';
$http = new Client;
$request = new Request('GET', $url . '/facts/random?animal_type=cat&amount=2');
$response = $http->send($request, []);
$resp = json_decode((string) $response->getBody(), false);
} catch (RequestException $e) {
$error = json_decode($e->getResponse()->getBody()->getContents());
} catch (\Exception $e) {
}
}
---------------------------------------------
.
├── controllers
│ └── web
│ └── HomeDgtInform.controller.php
├── guzzlehttp_guzzle_7.0.0.0_beta1_require
│ ├── composer.json
│ ├── composer.lock
│ ├── index.php
│ └── vendor
│ ├── autoload.php
我需要使用sproutvideo php lib that requires Guzzle
Guzzle 需要安装 composer 并且不确定是否需要 运行,因为在某些文件中我发现
require 'vendor/autoload.php';
我从未使用过 composer,我在共享主机上,无法安装它
我从 github 下载 Guzzle 但不确定我是否解决了 autoload.php 工作人员以及是否会工作
您不应该选择手动安装 Sproutvideo,因为那比您想象的要麻烦得多。事实上,正如您发现的那样,它根本不会让您使用 Composer 来安装 Guzzle。
使用共享主机时(甚至使用具有 root 访问权限的专用服务器时),最好不要在该计算机上调用 Composer 来安装依赖项。你应该有办法把你的常规网站的文件放在共享主机上,也许用 FTP (警告:没有密码加密!避免它),SFTP,SCP,FTPS, WebDAV 等。无论您使用什么将文件从本地计算机复制到共享主机,您都应该使用它来复制 Composer 为您下载的文件。
这意味着您必须 运行 该本地计算机上的 Composer。你安装它和 运行 下载你需要的包所需的命令,并创建自动加载。之后就可以上传文件到共享主机了。
根据您的开发方式,完全可以上传然后摆弄共享主机上的文件,但我建议准备一个本地开发环境。这样,当您在代码中输入错误并立即上传时,您就不会意外关闭您的实时网站。
为了使用由 Composer 自动加载的 类,您只需包含位于 vendor/autoload.php
的文件(如果您的 PHP 文件不在根目录中目录,您必须使用正确的路径,很可能在前面加上 ../
一次或多次)。包含此文件后,您只需使用 类。请注意,您必须为 Sproutvideo 库使用正确的命名空间。
还有一件事:Sproutvideo 库目前没有发布版本,因此 Github 页面上的安装说明实际上是错误的,因为您无法解决发布版本。以此作为警告信号。此外,此库依赖于过时的 Guzzle 版本 3.7。 3.x系列最新版本为3.9.3,最晚维护到2015年底。这是一个额外的警告标志。您可能需要联系 Sproutvideo 的维护者和 ask to release a version and to update the dependency on Guzzle.
我正在寻找一种无需 Composer 即可安装 Guzzle 的方法(我将在生产服务器上进行设置,并且需要将新安装保持在最低限度)。 Guzzle 3.x 可以通过 PEAR 安装:
https://guzzle3.readthedocs.org/getting-started/installation.html
3.x 是旧版本,但我想它可以用于很多用途。
如果您是 运行 RedHat 或 Centos,EPEL 存储库有一个名为 "php-guzzle-Guzzle" 的软件包,可以通过 yum 安装。如果这样做,将 Guzzle 包含在 php 代码中的方法如下:
<?php
require "Guzzle/autoload.php";
您可以从此站点下载 Guzzle 的打包版本,无需 Composer 创建依赖项。
为我工作!谢谢
Download link: https://php-download.com/package/guzzlehttp/guzzle#all-versions
---------------------------------------------
HomeDgtInform.controller.php
---------------------------------------------
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
use GuzzleHttp\Psr7\Request;
class HomeDgtInform extends DefaultController
{
public static function getRootPath() {
return realpath(__DIR__ . "/../../");
}
public function getInfo()
{
set_include_path($this->getRootPath() . '/guzzlehttp_guzzle_7.0.0.0_beta1_require/');
require_once($this->getRootPath() ."/guzzlehttp_guzzle_7.0.0.0_beta1_require/vendor/autoload.php");
try {
$url = 'https://cat-fact.herokuapp.com';
$http = new Client;
$request = new Request('GET', $url . '/facts/random?animal_type=cat&amount=2');
$response = $http->send($request, []);
$resp = json_decode((string) $response->getBody(), false);
} catch (RequestException $e) {
$error = json_decode($e->getResponse()->getBody()->getContents());
} catch (\Exception $e) {
}
}
---------------------------------------------
.
├── controllers
│ └── web
│ └── HomeDgtInform.controller.php
├── guzzlehttp_guzzle_7.0.0.0_beta1_require
│ ├── composer.json
│ ├── composer.lock
│ ├── index.php
│ └── vendor
│ ├── autoload.php