在https://symfony.com/doc/current/setup.html,您被指示运行:
composer create-project symfony/website-skeleton my-project
Run Code Online (Sandbox Code Playgroud)
而在http://symfony.com/doc/current/quick_tour/the_big_picture.html,您被指示运行:
composer create-project symfony/skeleton quick_tour
Run Code Online (Sandbox Code Playgroud)
我刚刚做了两件事.使用symfony/website-skeleton我在浏览器中收到一条错误消息:No route found for "GET /"
使用symfony/skeleton我确实得到了一个Welcome to Symfony 4.0.4页面.
这两者之间有什么区别,为什么你会使用一个而不是另一个?
在尝试使用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) 在下面的代码中,来自 multer API 的目标和文件名选项都是匿名函数。这两个函数都有一个名为cb的参数。这些回调函数是在 multer 模块中定义的还是我应该提供它们?
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '/tmp/my-uploads')
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now())
}
})
var upload = multer({ storage: storage }
Run Code Online (Sandbox Code Playgroud) 在这个文章,我被提到了下面的语句是由:
回调是一种确保某些代码在其他代码已经完成执行之前不会执行的方法.
然后,本文继续用一个例子来说明这一点:
function doHomework(subject, callback) {
alert(`Starting my ${subject} homework.`);
callback();
}
doHomework('math', function() {
alert('Finished my homework');
Run Code Online (Sandbox Code Playgroud)
在此之后文章指出:
正如您所看到的,如果您在控制台中输入上述代码,您将收到两个警告:您的"开始作业"警报,然后是"完成的作业"警报.
暗示似乎是通过使用回调,确保了所需的代码执行顺序.那就是你在完成它之前开始做作业.但是,我觉得我可能误解了文章的全部内容,因此仍然不理解回调和异步代码,因为当我使用setTimeout()减慢doHomework函数的第一部分时代码执行(或至少返回)相反的顺序:
function doHomework(subject, callback) {
setTimeout(function(){
console.log(`Starting my ${subject} homework.`);
}, 500);
callback();
}
doHomework('math', function() {
console.log('Finished my homework');
});
Run Code Online (Sandbox Code Playgroud)
我得到的结果是:
steve@Dell ~/my-app $ node app.js
Finished my homework
Starting my math homework.
});
Run Code Online (Sandbox Code Playgroud)
我在这里使用节点(因此console.log()取代了alert())但我不认为这是相关的.
在我看来,我已经错过了一些非常基本的东西,需要尝试访问我试图理解的内容,然后再尝试理解它.
对此旅程的任何帮助将不胜感激.
得到很好的反馈之后,我认为家庭作业的比喻没有用,所以我现在正在使用我引用的文章中的第一个代码示例.本文给出了这段代码:
function first(){
// Simulate a code delay
setTimeout( function(){
console.log(1);
}, 500 );
}
function second(){
console.log(2);
} …Run Code Online (Sandbox Code Playgroud) 在下面的代码中,在 multer API 中,两个 cb 函数将 null 作为第一个参数。null 的意义是什么?除了 null 之外,这里还可以使用哪些其他值?
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '/tmp/my-uploads')
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now())
}
})
var upload = multer({ storage: storage }
Run Code Online (Sandbox Code Playgroud) 我在Ubuntu 22.04上有PHP 8.1.2和Apache 2.4.52,我想我需要GD 图形扩展才能使我的 PHP 脚本工作,但它似乎没有安装和/或启用(输出中没有 GD 部分)跑步。phpinfo()
我看到的一些建议是运行并重新启动 Apache,而不对php.iniapt-get install php-gd进行任何修改。
在php.net似乎表明有一个
推荐的GD库捆绑版本
已经存在于我的 PHP 中,我需要编辑php.ini才能启用它。我理解(我现在认为是错误的)这意味着我需要从这些预先存在的指令中删除前缀分号:
;--with-gd[=DIR];--enable-gd该建议继续建议某些图像格式(尽管可能不适用于PNG),我需要取消注释:
;--with-jpeg;--with-xpm;--with-webp为了增强 GD 的字体功能,取消注释:
--with-XXXX--with-freetype搜索/etc/php/8.1/apache2/php.ini显示该文件中没有任何;--enable-gd行或任何其他上述指令。有一条;extension=gd线。
我想知道如何从这里开始安装(如果尚未安装,正如我认为文档所暗示的那样)并启用 GD Graphics 扩展。
编辑我还看到这篇geeksforgeeks 文章建议取消注释;extension=gd并重新启动服务器。