我在使用参数的路由在Slim 3 RC中工作时遇到了问题.
$app->get('/hello/:name', function($req, $res, $args) {
echo "Hello {$name}";
});
Run Code Online (Sandbox Code Playgroud)
访问/hello/joe结果404.
其他路线工作正常,例如:
$app->get('/', HomeAction::class . ":dispatch");
$app->get('/services', ServicesAction::class . ":dispatch");
Run Code Online (Sandbox Code Playgroud)
我正在开发时使用内置的PHP服务器.我没有任何.htaccess档案.我已经尝试了建议的route.php建议和这个问题的接受答案,但它不起作用.有什么建议吗?
我正在开发一个非常简单的Symfony控制台应用程序。它只有一个带有一个参数的命令,以及几个选项。
我按照本指南创建了Application该类的扩展。
这是该应用程序的正常用法,并且工作正常:
php application <argument>
这也很好用(带有选项的参数):
php application.php <argument> --some-option
如果有人在运行时php application.php没有任何参数或选项,那么我希望它像用户在运行一样运行php application.php --help。
我确实有一个可行的解决方案,但它不是最佳解决方案,可能有点脆弱。在扩展Application类中,我run()按如下方式覆盖了该方法:
/**
* Override parent method so that --help options is used when app is called with no arguments or options
*
* @param InputInterface|null $input
* @param OutputInterface|null $output
* @return int
* @throws \Exception
*/
public function run(InputInterface $input = null, OutputInterface $output = null)
{
if ($input === null) { …Run Code Online (Sandbox Code Playgroud) 我最近更新了我的应用程序,使用composer来处理所有依赖项.作为其中的一部分,我已经更新了我的部署脚本 - 一个Grunt任务和一个批处理文件的组合 - 在执行"git pull"之后包含一个"作曲家更新".
但是,我发现虽然编写器更新成功运行,但该行之后的其余批处理文件中没有任何命令运行.如果我把"作曲家更新"换行,其他一切都运行正常(但当然我冒着过时/缺少依赖的风险).
编辑: 完整的.bat文件.如果没有作曲家更新行,它将完全运行 - 使用它,它会跳到部署过程的下一部分.
这会在\ versions \中创建一个新的带日期戳的文件夹,更新存储库并更新主repo文件夹中的作曲家依赖关系,将git checkout-index导入新版本文件夹,使用xcopy将具有编辑器依赖关系的Vendor文件夹复制到新版本(因为它被git忽略)然后更新一些符号链接,包括IIS使用的\ current\symlink作为站点根文件夹.
@echo off
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a%%b)
set date=%mydate%_%mytime%
mkdir "C:\inetpub\appname\versions\%date%"
cd "C:\inetpub\appname\repository"
git pull origin master
composer update
git checkout-index -a -f --prefix="C:\inetpub\appname\versions\%date%\\"
cd "C:\inetpub\appname\versions\%date%\\"
xcopy /E /y /q "C:\inetpub\appname\repository\www\app\Vendor" "www\app\Vendor"
del /Q www\app\webroot\files
rmdir www\app\webroot\files
cd "C:\inetpub\appname\"
MKLINK /D "C:\inetpub\appname\versions\%date%\www\app\tmp" "C:\inetpub\appname_tmp"
MKLINK /D "C:\inetpub\appname\versions\%date%\www\app\webroot\files" …Run Code Online (Sandbox Code Playgroud)