【发布时间】:2018-04-14 07:07:56
【问题描述】:
我在尝试弄清楚如何通过 Composer 和 Symfony 安装和使用 DOMPDF 时遇到了很多麻烦。这是几年前写的一个项目,我对 Composer、Symfony 和 DOMPDF 完全陌生......其他人告诉我我们正在使用 Composer 和 Symfony。
我使用 puTTy 命令行界面通过以下方式安装了 DOMPDF: 1.转到我的composer.json所在的文件夹(供应商) 2.运行命令“安装dompdf/dompdf”它成功完成,没有错误。 3. 然后运行命令 composer "require dompdf/dompdf" 也成功完成,没有错误。
然后我会迷路/困惑...
我看到使用 :
编辑 composer.json 的说明{
"require": {
"squizlabs/php_codesniffer": "2.0.*",
}
这里是composer.json的新内容
{
"require": {
"spipu/html2pdf": "^5.0",
"dompdf/dompdf": "^0.8.1"
}
我尝试在我的 PHP 代码中添加以下行来使用 DOMPDF,但我得到的只是一个空白页
use Dompdf\Dompdf;
还有一个 autoload.php,如下所示:
//autoload.php @generated by Composer
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit********************************::getLoader();
在兔子洞之后,autoload_real.php 看起来像这样:
// autoload_real.php @generated by Composer
class ComposerAutoloaderInit987ec9019a1b2f978bf00ce76684ede0
private static $loader;
public static function loadClassLoader($class)
{
if ('Composer\Autoload\ClassLoader' === $class) {
require __DIR__ . '/ClassLoader.php';
}
}
public static function getLoader()
{
if (null !== self::$loader) {
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInit987ec9019a1b2f978bf00ce76684ede0', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
spl_autoload_unregister(array('ComposerAutoloaderInit987ec9019a1b2f978bf00ce76684ede0', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
require_once __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInit987ec9019a1b2f978bf00ce76684ede0::getInitializer($loader));
} else {
$map = require __DIR__ . '/autoload_namespaces.php';
foreach ($map as $namespace => $path) {
$loader->set($namespace, $path);
}
$map = require __DIR__ . '/autoload_psr4.php';
foreach ($map as $namespace => $path) {
$loader->setPsr4($namespace, $path);
}
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
$loader->addClassMap($classMap);
}
}
$loader->register(true);
if ($useStaticLoader) {
$includeFiles = Composer\Autoload\ComposerStaticInit987ec9019a1b2f978bf00ce76684ede0::$files;
} else {
$includeFiles = require __DIR__ . '/autoload_files.php';
}
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequire987ec9019a1b2f978bf00ce76684ede0($fileIdentifier, $file);
}
return $loader;
}}function composerRequire987ec9019a1b2f978bf00ce76684ede0($fileIdentifier, $file){if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
require $file;$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;}}
此外,我在供应商文件中有 14 个文件夹,我假设它们都是与 Composer 一起使用的包,但我没有看到 composer.json 文件中需要它们,并且在安装 DOMPDF 后,我不需要查看供应商文件夹。我想删除它们,但我不知道什么正在使用,什么没有被使用。
我已经阅读了“入门指南”,但我仍然不知道我做错了什么。
我确定我还有一千多个问题...感谢您的耐心等待。
【问题讨论】:
标签: symfony composer-php dompdf