每次我创建一个新的PHP项目时,我基本上使用的是我采用的相同的MVC文件夹结构,我使用相同的基类,接口和相同的PDO DAL实现。 当我创建一个新项目时,我将所有需要的文件复制并粘贴到新项目中,此外还有一些更改,例如命名空间的更改(以匹配新项目名称)等。
我想,为什么不创建一个简单的脚本来复制这些文件和文件夹,并进行其他更改。 所以现在,当我创建一个新项目时,我只需运行脚本,代码就会自动生成,这样会更好。
然后我想,我希望它更简单。我不想将代码保存在我的计算机中,我想将它保存在Github上,因为我使用并喜欢作曲家,我想我会把Github项目作为一个作曲家包。 但是当我试图实现它时,我意识到我不能让新的作曲家包自动生成我想要的代码,或者至少我不知道如何让它做到这一点。 我试着谷歌搜索没有成功。
有谁知道如何实现这个目标?
答案 0 :(得分:3)
我不认为有必要在这里生成代码。只需将您的骨架文件添加到Git存储库并使用Composer的create-project
功能。见第三点:
您可以使用Composer从现有包中创建新项目。这相当于执行git clone / svn checkout,然后是供应商的作曲家安装。
有几个应用程序:
- 您可以部署应用程序包。
- 您可以查看任何软件包并开始开发补丁程序。
- 具有多个开发人员的项目可以使用此功能来引导初始应用程序以进行开发。
醇>
支持此方法的主要PHP项目的示例是Laravel。来自installation instructions:
Via Composer
Laravel框架利用Composer进行安装和依赖关系管理。如果您还没有,请从installing Composer开始。
现在您可以通过终端发出以下命令来安装Laravel:
composer create-project laravel/laravel your-project-name --prefer-dist
此命令将在当前目录的新
your-project-name
文件夹中下载并安装Laravel的全新副本。如果您愿意,也可以手动下载Laravel repository from Github的副本。接下来,在手动创建的项目目录的根目录中运行
composer install
命令。此命令将下载并安装框架的依赖项。
修改强>
要在composer create-project
完成后运行脚本,您应该可以使用Composer script:
使用Composer的术语,脚本可以是PHP回调(定义为静态方法),也可以是任何命令行可执行命令。脚本对于在Composer执行过程中执行包的自定义代码或特定于包的命令很有用。
您可能正在寻找post-create-project-cmd
事件:
在执行
create-project
命令后发生
根据您的脚本是静态PHP方法还是shell可执行文件,您应该按如下方式定义它(从Composer文档中修改):
{
"scripts": {
"post-create-project-cmd": "MyVendor\\MyClass::postUpdate"
}
}
或
{
"scripts": {
"post-create-project-cmd": "my-shell-script arg1 arg2"
}
}