Elementor Core Cơ bản
PHP namespaces là một cách để đóng gói chức năng của tiện ích bổ sung của bạn. Giống như hệ thống tệp, hệ thống namespace có thể làm cho mã của bạn có tổ chức và dễ sử dụng.
Elementor sử dụng namespaces trong mã của mình để nhóm các lớp, giao diện, hàm và hằng số liên quan. Chúng tôi khuyên các nhà phát triển nên sử dụng namespaces khi phát triển tiện ích bổ sung.
Bạn có nên sử dụng Namespaces không? #
Việc sử dụng namespaces là một lựa chọn cá nhân. Ví dụ, WordPress không sử dụng namespaces, trong khi mã của Elementor chứa nhiều namespaces.
Đối với các tiện ích bổ sung của Elementor, các nhà phát triển không bắt buộc phải sử dụng namespaces. Các tiện ích bổ sung sẽ hoạt động dù có hoặc không có chúng.
Ví dụ về cấu trúc Namespace #
Namespaces của Elementor được tổ chức thành các sub-namespace để sắp xếp các chức năng tương tự:
\Elementor\
\Elementor\Core
\Elementor\Core\Editor
\Elementor\Core\Breakpoints
\Elementor\Core\Files
Định nghĩa Namespaces chính #
Do những hạn chế trong kiến trúc WordPress, bạn không thể thêm namespaces vào tệp chính nơi chứa các comment header. Đây là lý do tại sao cả Elementor và Elementor Pro đều tải tệp plugin.php nơi chứa chức năng và nơi namespace chính được định nghĩa.
Các nhà phát triển tiện ích bổ sung có thể sử dụng cấu trúc tương tự:
elementor-test-addon/
|
├─ includes/
| ├─ controls/
| ├─ widgets/
| |
| └─ plugin.php
|
└─ elementor-test-addon.php
Ví dụ #
Tệp elementor-test-addon.php chính tải chức năng:
<?php
/**
* Plugin Name: Elementor Test Addon
* Description: Custom Elementor addon.
* Plugin URI: https://elementor.com/
* Version: 1.0.0
* Author: Elementor Developer
* Author URI: https://developers.elementor.com/
* Text Domain: elementor-test-addon
*
* Requires Plugins: elementor
* Elementor tested up to: 3.25.0
* Elementor Pro tested up to: 3.25.0
*/
function elementor_test_addon() {
// Load plugin file
require_once( __DIR__ . '/includes/plugin.php' );
// Run the plugin
\Elementor_Test_Addon\Plugin::instance();
}
add_action( 'plugins_loaded', 'elementor_test_addon' );
Tệp /includes/plugin.php định nghĩa namespace và nhiều chức năng khác:
<?php
namespace Elementor_Test_Addon;
final class Plugin {
}
Lưu ý #
Xin lưu ý rằng ví dụ trên bao gồm ba lớp PHP có tên Plugin, một trong Elementor, một trong Elementor Pro và một trong tiện ích bổ sung thử nghiệm của chúng tôi. Tuy nhiên, vì tất cả đều sử dụng các namespaces khác nhau, mỗi lớp có phạm vi riêng nên không có xung đột tên:
\Elementor\Plugin()
\ElementorPro\Plugin()
\Elementor_Test_Addon\Plugin()
Nguồn:https://developers.elementor.com