让我们说我的项目有以下结构
project\
templates\
web\assets\
composer.json
默认情况下运行composer update
符号链接到我的项目是在vendor/
目录中创建的。我想创建一个自定义的post-install-cmd脚本,该脚本将在不同位置创建符号链接到templates\
和web\assets\
文件夹。
由于我的团队正在开发Windows / Mac / Linux,我计划运行一个简单的php命令来实现这一目标。我似乎无法弄清楚从哪里开始...
问题是,我无法弄清楚启动php脚本时我当前的位置在哪里?我尝试过创建一个空文件来查看它创建的位置,但它甚至都没有创建它。
这是我希望工作的原因
"scripts": {
"post-install-cmd": [
"php -r \"symlink('/vendor/project/templates', '/templates/project');\"",
"php -r \"symlink('/vendor/project/web/assets', '/web/project/assets');\""
]
}
答案 0 :(得分:0)
你应该从路径中删除前导斜杠 - 至少在unix上它会被解释为绝对路径,绝对不会指向你的项目。
"scripts": {
"post-install-cmd": [
"php -r \"symlink('vendor/project/templates', 'templates/project');\"",
"php -r \"symlink('vendor/project/web/assets', 'web/project/assets');\""
]
}
如果你想要一个防弹解决方案,你应该创建PHP助手类并使用__DIR__
lub composer API来定义正确的路径。请参阅examples in documentation。