Johnpbloch wordpress

Chúng tôi rất vui mừng thông báo gói Trình soạn thảo mới để cài đặt WordPress. roots/wordpress. Đây là sự thay thế tùy ý cho gói johnpbloch/wordpress mà Bedrock đã sử dụng. Chúng tôi khuyên bạn nên sử dụng roots/wordpress về sau

Tại sao một gói mới?

Trước hết, thật đáng thất vọng khi vẫn cần bất kỳ gói WordPress không chính thức nào. Các gói này tồn tại vì WordPress. org sẽ không thêm composer.json vào gốc dự án của họ. roots/wordpress cũng không chỉ là bản sao của johnpbloch/wordpress. Chúng tôi đã có một số mục tiêu cụ thể mà chúng tôi muốn hoàn thành để biện minh cho gói mới này

  • Sử dụng một nguồn chính thức
    Khi yêu cầu gói của chúng tôi, mã WordPress đã tải xuống phải đến từ một nguồn chính thức (chẳng hạn như https. //github. com/WordPress/WordPress hoặc https. //wordpress. org/tải xuống/phát hành/)
  • Không sửa đổi nguồn
    Mã nguồn WordPress phải để nguyên không chỉnh sửa gì
  • Phát hành hoàn toàn tự động
    Gói của chúng tôi phải có các bản phát hành tự động bất cứ khi nào một phiên bản mới của WordPress được phát hành kịp thời (johnpbloch/wordpress trước đây hầu hết đều tốt, nhưng đã có vấn đề với sự chậm trễ và phiên bản bị thiếu)
  • kiểm toán công khai
    Mã, trạng thái chạy và đầu ra của quy trình cập nhật tự động phải được hiển thị công khai và dễ đóng góp
  • Quá trình chuyển đổi liền mạch
    -  "name": "johnpbloch/wordpress-core",
    -  "version": "4.9.8",
    +  "name": "roots/wordpress",
    +  "version": "5.0",
       "source": {
           "type": "git",
    -      "url": "https://github.com/johnpbloch/wordpress-core.git",
    -      "reference": "50323f9b91d7689d615b4af02caf9d80584b1cfc"
    +      "url": "https://github.com/WordPress/WordPress.git",
    +      "reference": "5.0"
       },
       "dist": {
           "type": "zip",
    -      "url": "https://api.github.com/repos/johnpbloch/wordpress-core/zipball/50323f9b91d7689d615b4af02caf9d80584b1cfc",
    -      "reference": "50323f9b91d7689d615b4af02caf9d80584b1cfc",
    -      "shasum": ""
    +      "url": "https://api.github.com/repos/WordPress/WordPress/zipball/5.0",
    +      "reference": "5.0",
    
    0 phải là bằng chứng trong tương lai

Thực hiện

Chúng tôi đã hoàn thành tất cả các mục tiêu này và kết thúc với một giải pháp khá tao nhã

Có gì trong một gói WordPress?

Lý tưởng nhất là bất kỳ gói soạn thảo cốt lõi nào của WordPress đều tối thiểu nhất có thể. Nó thực sự chỉ cần hai điều

  1. Siêu dữ liệu của nhà soạn nhạc (composer.json)
  2. Gói được xuất bản lên Packagist

Về cơ bản bạn cần phải

  1. Tạo một nhà soạn nhạc. json trông như thế này
  2. Gắn thẻ phát hành
  3. Bản phát hành được chọn bởi Packagist

Giải phẫu của composer.json được tạo ra từ roots/wordpress

Sau đây là một ví dụ về composer.json được tạo cho WordPress 5. 0 phát hành

{
    "name": "roots/wordpress",
    "description": "WordPress is web software you can use to create a beautiful website or blog.",
    "keywords": [
        "wordpress",
        "blog",
        "cms"
    ],
    "homepage": "http://wordpress.org/",
    "license": "GPL-2.0-or-later",
    "authors": [
        {
            "name": "WordPress Community",
            "homepage": "http://wordpress.org/about/"
        }
    ],
    "support": {
        "issues": "http://core.trac.wordpress.org/",
        "forum": "http://wordpress.org/support/",
        "wiki": "http://codex.wordpress.org/",
        "irc": "irc://irc.freenode.net/wordpress",
        "source": "http://core.trac.wordpress.org/browser"
    },
    "type": "wordpress-core",
    "version": "5.0",
    "require": {
        "php": ">=5.3.2",
        "roots/wordpress-core-installer": ">=1.0.0"
    },
    "dist": {
        "url": "https://api.github.com/repos/WordPress/WordPress/zipball/5.0",
        "type": "zip"
    },
    "source": {
        "url": "https://github.com/WordPress/WordPress.git",
        "type": "git",
        "reference": "5.0"
    }
}

(nguồn)

Các bit quan trọng của lược đồ composer.json tạo nên gói của chúng tôi là

  • loại.
    -  "name": "johnpbloch/wordpress-core",
    -  "version": "4.9.8",
    +  "name": "roots/wordpress",
    +  "version": "5.0",
       "source": {
           "type": "git",
    -      "url": "https://github.com/johnpbloch/wordpress-core.git",
    -      "reference": "50323f9b91d7689d615b4af02caf9d80584b1cfc"
    +      "url": "https://github.com/WordPress/WordPress.git",
    +      "reference": "5.0"
       },
       "dist": {
           "type": "zip",
    -      "url": "https://api.github.com/repos/johnpbloch/wordpress-core/zipball/50323f9b91d7689d615b4af02caf9d80584b1cfc",
    -      "reference": "50323f9b91d7689d615b4af02caf9d80584b1cfc",
    -      "shasum": ""
    +      "url": "https://api.github.com/repos/WordPress/WordPress/zipball/5.0",
    +      "reference": "5.0",
    
    6
  • quận. URL trực tiếp để tải xuống zip phát hành WordPress
  • nguồn. tham chiếu đến repo git
    -  "name": "johnpbloch/wordpress-core",
    -  "version": "4.9.8",
    +  "name": "roots/wordpress",
    +  "version": "5.0",
       "source": {
           "type": "git",
    -      "url": "https://github.com/johnpbloch/wordpress-core.git",
    -      "reference": "50323f9b91d7689d615b4af02caf9d80584b1cfc"
    +      "url": "https://github.com/WordPress/WordPress.git",
    +      "reference": "5.0"
       },
       "dist": {
           "type": "zip",
    -      "url": "https://api.github.com/repos/johnpbloch/wordpress-core/zipball/50323f9b91d7689d615b4af02caf9d80584b1cfc",
    -      "reference": "50323f9b91d7689d615b4af02caf9d80584b1cfc",
    -      "shasum": ""
    +      "url": "https://api.github.com/repos/WordPress/WordPress/zipball/5.0",
    +      "reference": "5.0",
    
    7

Không giống như các gói Trình soạn thảo thông thường, lõi WordPress cần được cài đặt vào một thư mục không chuẩn, yêu cầu trình cài đặt tùy chỉnh. Chúng tôi đã rẽ nhánh https. //github. com/johnpbloch/wordpress-core-installer sang https. //github. com/root/wordpress-core-installer. Trình cài đặt nhận ra rằng bạn có một gói có loại

-  "name": "johnpbloch/wordpress-core",
-  "version": "4.9.8",
+  "name": "roots/wordpress",
+  "version": "5.0",
   "source": {
       "type": "git",
-      "url": "https://github.com/johnpbloch/wordpress-core.git",
-      "reference": "50323f9b91d7689d615b4af02caf9d80584b1cfc"
+      "url": "https://github.com/WordPress/WordPress.git",
+      "reference": "5.0"
   },
   "dist": {
       "type": "zip",
-      "url": "https://api.github.com/repos/johnpbloch/wordpress-core/zipball/50323f9b91d7689d615b4af02caf9d80584b1cfc",
-      "reference": "50323f9b91d7689d615b4af02caf9d80584b1cfc",
-      "shasum": ""
+      "url": "https://api.github.com/repos/WordPress/WordPress/zipball/5.0",
+      "reference": "5.0",
6 và cài đặt nó ở vị trí thích hợp. Trình cài đặt của chúng tôi cho phép bạn dễ dàng thay thế gói WordPress hiện có mà không gây ra lỗi như bản gốc

Các phím

-  "name": "johnpbloch/wordpress-core",
-  "version": "4.9.8",
+  "name": "roots/wordpress",
+  "version": "5.0",
   "source": {
       "type": "git",
-      "url": "https://github.com/johnpbloch/wordpress-core.git",
-      "reference": "50323f9b91d7689d615b4af02caf9d80584b1cfc"
+      "url": "https://github.com/WordPress/WordPress.git",
+      "reference": "5.0"
   },
   "dist": {
       "type": "zip",
-      "url": "https://api.github.com/repos/johnpbloch/wordpress-core/zipball/50323f9b91d7689d615b4af02caf9d80584b1cfc",
-      "reference": "50323f9b91d7689d615b4af02caf9d80584b1cfc",
-      "shasum": ""
+      "url": "https://api.github.com/repos/WordPress/WordPress/zipball/5.0",
+      "reference": "5.0",
9 và
  "require": {
    "php": ">=5.6",
    "composer/installers": "^1.4",
    "vlucas/phpdotenv": "^2.0.1",
    "oscarotero/env": "^1.1.0",
-   "johnpbloch/wordpress": "5.0",
+   "roots/wordpress": "5.0",
    "roots/wp-config": "1.0.0",
    "roots/wp-password-bcrypt": "1.0.0"
  },
0 cho nhà soạn nhạc biết nơi lấy nội dung của gói. Gói của chúng tôi về cơ bản là một gói meta chỉ yêu cầu nhà soạn nhạc lấy WordPress từ nguồn chính thức. Các lợi ích sẽ rõ ràng nếu bạn xem
  "require": {
    "php": ">=5.6",
    "composer/installers": "^1.4",
    "vlucas/phpdotenv": "^2.0.1",
    "oscarotero/env": "^1.1.0",
-   "johnpbloch/wordpress": "5.0",
+   "roots/wordpress": "5.0",
    "roots/wp-config": "1.0.0",
    "roots/wp-password-bcrypt": "1.0.0"
  },
1 sau khi chuyển sang roots/wordpress. Bạn sẽ nhận được các URL nguồn chính thức và các phiên bản
  "require": {
    "php": ">=5.6",
    "composer/installers": "^1.4",
    "vlucas/phpdotenv": "^2.0.1",
    "oscarotero/env": "^1.1.0",
-   "johnpbloch/wordpress": "5.0",
+   "roots/wordpress": "5.0",
    "roots/wp-config": "1.0.0",
    "roots/wp-password-bcrypt": "1.0.0"
  },
3 phù hợp

-  "name": "johnpbloch/wordpress-core",
-  "version": "4.9.8",
+  "name": "roots/wordpress",
+  "version": "5.0",
   "source": {
       "type": "git",
-      "url": "https://github.com/johnpbloch/wordpress-core.git",
-      "reference": "50323f9b91d7689d615b4af02caf9d80584b1cfc"
+      "url": "https://github.com/WordPress/WordPress.git",
+      "reference": "5.0"
   },
   "dist": {
       "type": "zip",
-      "url": "https://api.github.com/repos/johnpbloch/wordpress-core/zipball/50323f9b91d7689d615b4af02caf9d80584b1cfc",
-      "reference": "50323f9b91d7689d615b4af02caf9d80584b1cfc",
-      "shasum": ""
+      "url": "https://api.github.com/repos/WordPress/WordPress/zipball/5.0",
+      "reference": "5.0",

Các bản phát hành tự động có thể kiểm tra công khai

Nguồn cho quy trình phát hành tự động của chúng tôi có sẵn trên nhánh

  "require": {
    "php": ">=5.6",
    "composer/installers": "^1.4",
    "vlucas/phpdotenv": "^2.0.1",
    "oscarotero/env": "^1.1.0",
-   "johnpbloch/wordpress": "5.0",
+   "roots/wordpress": "5.0",
    "roots/wp-config": "1.0.0",
    "roots/wp-password-bcrypt": "1.0.0"
  },
4 của github. com/root/wordpress. Tại thời điểm viết bài này, bạn sẽ tìm thấy một tập hợp các tập lệnh PHP đơn giản phối hợp tìm nạp các phiên bản mới, tạo các tệp soạn thảo và gắn thẻ các bản phát hành. Chúng tôi chọn viết những thứ này bằng PHP vì những lý do sau

  • Rào cản đóng góp thấp hơn. Tôi cho rằng nếu bạn đang đọc bài viết này thì bạn đã hiểu cách viết và gỡ lỗi PHP
  • An toàn và độ tin cậy của một môi trường ngôn ngữ lập trình đầy đủ tính năng. Các tập lệnh Bash có thể mạnh mẽ nhưng có thể trở nên khá điên rồ khá nhanh
  • Mã của chúng tôi có thể được sử dụng lại dưới dạng thư viện bên ngoài dự án này nếu bạn có ý tưởng khác về cách chạy/triển khai mã này

Nơi chính mà quy trình phát hành tự động này sẽ được chạy là Travis CI. Chúng tôi đã chọn điều này bởi vì

  • Lịch sử xây dựng và kết quả xây dựng được cung cấp công khai để minh bạch tối đa. Nếu hệ thống tự động hóa của chúng tôi có lỗi, bạn có thể kiểm tra và thậm chí có thể tự khắc phục chúng
  • Travis miễn phí cho mã nguồn mở. Bất kỳ ai có bản sao mã của chúng tôi và tài khoản GitHub đều có thể chạy trên cùng cơ sở hạ tầng mà chúng tôi làm mà không cần thiết lập và bảo trì máy chủ của riêng họ
  • Travis có một thành tích tuyệt vời và rất nhiều chia sẻ tâm trí. Bạn sẽ theo dõi một
      "require": {
        "php": ">=5.6",
        "composer/installers": "^1.4",
        "vlucas/phpdotenv": "^2.0.1",
        "oscarotero/env": "^1.1.0",
    -   "johnpbloch/wordpress": "5.0",
    +   "roots/wordpress": "5.0",
        "roots/wp-config": "1.0.0",
        "roots/wp-password-bcrypt": "1.0.0"
      },
    
    5 trong hầu hết các kho lưu trữ phổ biến mà bạn dựa vào hàng ngày

Quá trình phát hành được chạy hàng ngày bởi các công việc định kỳ của Travis CI và bản dựng Travis CI được kích hoạt khi một bản phát hành được xuất bản lên repo WordPress/WordPress GitHub thông qua Zapier. Mục tiêu ở đây là bạn không cần phải tin tưởng chúng tôi để duy trì cơ sở hạ tầng của chúng tôi chạy để có được các bản phát hành đáng tin cậy

Chúng tôi khuyến khích bất kỳ ai quan tâm đến việc đóng góp hãy xem dự án "Second Pass" trên GitHub. Dự án này có rất nhiều kết quả thấp, bạn có thể tập hợp một yêu cầu kéo cho

Sử dụng roots/wordpress ngay hôm nay

Nếu bạn đang sử dụng phiên bản cũ hơn của Bedrock. sử dụng roots/wordpress cũng đơn giản như thay thế gói WordPress hiện có của bạn bằng roots/wordpress và sau đó chạy

  "require": {
    "php": ">=5.6",
    "composer/installers": "^1.4",
    "vlucas/phpdotenv": "^2.0.1",
    "oscarotero/env": "^1.1.0",
-   "johnpbloch/wordpress": "5.0",
+   "roots/wordpress": "5.0",
    "roots/wp-config": "1.0.0",
    "roots/wp-password-bcrypt": "1.0.0"
  },
9