sách gpt4 ai đã đi

yii2 - 制作 Yii2 扩展时的最佳实践

In lại 作者:行者123 更新时间:2023-12-04 02:40:45 27 4
mua khóa gpt4 Nike

为 Yii 创建扩展的最佳方式是什么?

这是我到目前为止所做的

  • 我希望它可以通过 composer 安装,所以我为它创建了一个 github repo。
  • 我在文件夹 vendor/githubname/projectname/ 中有本地文件在我的 Yii2 项目中

  • 现在我的问题是:我如何在应用程序中注册扩展 - 例如。开始在 myproject.com/myextension 上工作,我如何在扩展中组织 View 、 Controller 和模型?

    我用谷歌搜索了一个很好的教程,但我没有找到任何教程。

    1 Câu trả lời

    我一直处于同一点,不得不自己找到所有信息。由于这也可能对其他人有所帮助,因此我将详细记录每个步骤。

    1. Github 设置

    创建一个新的 github 存储库并确保遵循 yii2-extensions 的命名约定。理想情况下,它们是这样的:

    yourcompany/yii2-yourextension
    yourcompany成为你的 github 范围和 yourextension您的扩展名。

    2.本地项目设置

    创建一个本地文件夹,您将在其中开发您的扩展。您首先在其中创建的一个文件是 composer.json .此文件夹不应位于现有项目的供应商文件夹中!无论如何它都不会工作,除非你在 autoload.php 中声明了你的命名空间。您周围的项目手动。

    Composer .json

    其中最重要的部分是:
  • 依赖项(通常是 Yii2 框架)
  • 为你的包声明命名空间的 autoload-property。稍后 yiis-autoloader 将使用它来查找您的类。

  • 完成此操作后,您可以运行 composer update这将创建包含所有引用库的供应商文件夹。

    这是我们的扩展之一的示例:
    https://github.com/asinfotrack/yii2-toolbox/blob/master/composer.json

    特别注意文件末尾的自动加载 block !在这种情况下,这会告诉自动加载器 asinfotrack/yii2/toolbox将映射到项目的根文件夹。如果你有一个文件夹 models与类(class) MyModel.php在您的项目根目录中,它应该具有命名空间 asinfotrack/yii2/toolbox/models .知道了?这对于您的扩展工作至关重要!

    .gitignore

    您将创建的下一个文件是 .gitignore -文件。在那里,您排除了供应商文件夹和所有特定于 IDE 的文件。

    也是上述相同扩展的示例。您可以简单地复制/粘贴它:
    https://github.com/asinfotrack/yii2-toolbox/blob/master/.gitignore

    Git-repo-设置

    现在是时候初始化 git-repo 了。只需导航到目录并执行命令 khởi tạo git .首次执行 git thêm -A 添加所有文件并提交和 git commit -m "your message here" .您现在已准备好将您的 repo 推送到 github。

    您需要将 repo 的远程设置为 github。这是通过以下命令完成的:
    git remote add origin https://github.com/youraccount/yourrepo.git

    还要确保正确设置了以下配置变量:
    git config user.email
    git config user.name

    至少电子邮件应该与您的 github 帐户匹配。如果要更改值,只需将它们附加到上面的命令中。像这样:
    git config user.email "my-mail@my-domain.com"

    您现在已准备好将您的扩展推送到 github:
    git push origin master

    3.Packagist-设置

    为了让其他用户能够在他们的项目中引用您的扩展,您需要向 packagist.org 注册它。 .

    按照此处的说明创建一个帐户并提交您的扩展程序:
    https://packagist.org/packages/submit

    你只需要提供你的 repos github-url。确保遵循 yii2 的命名约定。

    4.连接packagist和github

    Packagist 镜像您的 repo 以供进一步分发。如果你跳过这一步,你必须在每次更新你的 github-repo 时告诉 packagist。这可以自动化!

    转到您的 github-repo 的设置并导航到 Webhooks & Services .在那里你为 packagist 添加了一个新的钩子(Hook)。这是由 github 原生支持的……你可以在下拉列表中找到 packagist-hook。

    您需要提供您的 packagist-API-Token,您可以在登录到 packagist.org 时在您的帐户页面顶部找到它。一切都在这里记录得很好:

    https://packagist.org/about

    5. 结论

    就是这样!当您对 github 执行新的提交时,它将自动镜像到 packagist。当您执行 composer update 时,您将延迟几分钟收到扩展的更新版本。 .

    起初,所有这些可能看起来令人生畏和复杂,但实际上它非常简单。如果您还有其他问题,请随时提问。然后我将扩展这个答案。

    如果有不清楚的地方,只需查看我们的 extensions 之一的文件即可。 .

    关于yii2 - 制作 Yii2 扩展时的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32544956/

    27 4 0
    行者123
    Hồ sơ cá nhân

    Tôi là một lập trình viên xuất sắc, rất giỏi!

    Nhận phiếu giảm giá Didi Taxi miễn phí
    Mã giảm giá Didi Taxi
    Giấy chứng nhận ICP Bắc Kinh số 000000
    Hợp tác quảng cáo: 1813099741@qq.com 6ren.com