Namespace trong php được sử dụng như thế nào?

Namespace được sử dụng nhằm tạo ra định danh mới cho class nhằm tránh tình trạng trùng class. Vậy cách sử dụng như thế nào?. Mình sẽ chia sẽ cách sử dụng

1. Cách đặt tên cho namespace

Nói chung bạn có thể đặt tên theo ý của bạn, chỉ lưu ý là nó sẽ ở trên cùng của một file php

Mình thì sẽ đặt tên như sau ví dụ: namespace Myprocore\Includes\Classes;

Myprocore\Includes\Classes chính là path tới file class, để mình biết vị trí file class lưu ở đâu

2. Cách new class khi có namespace

Thường để chạy class bạn thường dùng cú pháp là “new tên_class”, nhưng khi bạn đã dùng namespace để định danh cho class hiện tại thì việc new class có chút khác biệt, mình sẽ ví dụ code để bạn hiểu

Bạn chỉ cần dùng use là ok, cũng có một cách khác nữa new  Myprocore\Includes\Classes\Import_Landing_Page_Template(), nhưng cách này mình thấy không ok lắm

3. Cách khởi tạo một class không dùng namespace trong một class dùng namespace

Dả dụ trong một function của class dùng namespace, chúng ta new một class không namespace dùng cú pháp new tên_class() thì chắc chắn chương trình sẽ lỗi và cú pháp sẽ là new \ten_class(). Mình ví dụ code sau

Trong function import_menus_landing_page bạn thấy mình new một class  $import_obj = new \Mrtung_Importer(); , nó hơi khác là dùng thêm dấu “\”

4. Cách new class của một namespace class trong namepace class

Thì cũng dùng new ten_class chỉ khách một chút là trước khi khởi tạo ngoài việc include tới file chứa class chúng ta sử dụng use. sau đây là code ví dụ

Ở ví dụ trên anh chị thì mình dùng  use (lưu ý trước khi dùng use thì mình đã include tới file php chứa class)

use Elementor\Core\Base\Document;
use Elementor\Core\Editor\Editor;
use Elementor\DB;
use Elementor\Core\Settings\Manager as SettingsManager;
use Elementor\Core\Settings\Page\Model;
use Elementor\Modules\Library\Documents\Library_Document;
use Elementor\Plugin;
use Elementor\Utils;
use Myprocore\Includes\Classes\Import_Landing_Page_Template;

Sau khi dùng use thì chúng ta có thể extends (kế thừa lớp), khởi tạo như bình thường

// dùng function kế thừa
$data = $this->process_export_import_content( $data, ‘on_import’ );
//gọi tới  function nằm trong class  static và function nằm trong nó
Plugin::$instance->posts_css_manager->clear_cache();

//new class và gọi function như bình thường
$Import_Landing_Page_Template = new Import_Landing_Page_Template();
$Import_Landing_Page_Template->import_menus_landing_page();

5/5 (1 Đánh giá)

Gửi Phản Hồi
Chọn đánh giá của bạn
0 Bình Luận
Thông tin người gửi
Anh Chị


Đăng ký nhận bài viết mới

Khi mình đăng bài mới bạn sẽ nhận nó qua Email


Hướng dẫn thiết kế theme

Các functions thường dùng

  • Hotline: 0912 889 416

Mọi sự sao chép xin ghi rõ nguồn là fcwordpress.net

Chuyên trang về wordpress: hướng dẫn thiết kế theme, plugin, thủ thuật wordpress