Sử dụng giao diện dòng lệnh PHP CLI

    1

    PHP CLI (Command Line Interface) hay giao diện dòng lệnh PHP là chương trình dịch PHP độc lập hoạt động ở chế độ dòng lệnh tương tự như chương trình dịch của các ngôn ngữ Python, C# hay Java. PHP CLI hoạt động không cần đến một web server và do đó là một công cụ rất tốt để học ngôn ngữ PHP.

    Như đã nói ngay từ bài giới thiệu về lập trình PHP, tập bài giảng này sử dụng một cách tiếp cận hơi khác. Thay vì dậy ngôn ngữ lập trình PHP kết hợp với ứng dụng web ngay từ đầu, chúng ta sẽ khám phá các vấn đề cơ bản của ngôn ngữ PHP thông qua việc viết các script chạy từ CLI. Cách tiếp cận này giúp bạn tránh những yếu tố nhiễu của ứng dụng web (như mô hình client/server, HTML, CSS) để tập trung vào chính ngôn ngữ PHP. Khi đã nắm vững những vấn đề cơ bản của ngôn ngữ chúng ta sẽ quay lại với ứng dụng web.

    Để tiện lợi cho bạn trong các bài học cơ bản về ngôn ngữ PHP, trong bài học này chúng ta sẽ làm quen với giao diện dòng lệnh của PHP CLI.

    PHP CLI là gì?

    PHP CLI (Command Line Interface) là chương trình console chạy độc lập giúp bạn làm việc với PHP. Nói cách khác, PHP CLI cho phép sử dụng PHP mà không cần đến một web server (Apache, Nginx, IIS).

    Nhìn chung bạn có thể sử dụng PHP CLI cho những công việc sau:

    Thực thi file kịch bản trong một tệp .php: Đa số người học PHP nghĩ rằng file php dành riêng cho web và chỉ được thực thi trên web server. Thực tế, PHP CLI cho phép chạy các file php trên giao diện console như một chương trình desktop bình thường.

    Khả năng thực thi kịch bản của PHP không thua kém gì Python hay các ngôn ngữ script khác.

    Thực thi một đoạn code: thay vì phải viết cả một file script, PHP CLI chấp nhận cả những đoạn code PHP và thực thi. Tính năng này rất tiện lợi nếu bạn muốn nhanh chóng kiểm tra việc thực hiện của một đoạn code.

    Tra cứu thông tin về hàm, class: đây là tính năng trợ giúp cung cấp thông tin chi tiết về các hàm và class được hỗ trợ.

    Chạy chế độ tương tác (Interactive shell): đây là chế độ hoạt động theo mô hình REPL (read–eval–print loop) thông dụng của các ngôn ngữ script.

    Chạy server tích hợp: Bộ chương trình PHP tích hợp sẵn một web server đơn giản giúp bạn test các script ở môi trường web mà không cần đến một server thực thụ như Apache.

    PHP CLI còn nhiều khả năng nữa nhưng các chức năng trên sẽ được sử dụng thường xuyên cho quá trình học PHP mà chúng ta sẽ xem xét kỹ hơn ở phần sau của bài học.

    Tại sao bắt đầu với PHP CLI?

    Do ngôn ngữ lập trình PHP sử dụng chủ yếu trong phát triển ứng dụng web, các tài liệu dạy lập trình PHP ngay từ đầu sẽ gắn với xây dựng ứng dụng web.

    Cách tiếp cận này có một số nhược điểm.

    Ứng dụng web phức tạp với nhiều thành phần viết bằng nhiều ngôn ngữ: phần nội dung được diễn đạt bằng HMTL; phần hình thức được chỉ định qua CSS; thành phần xuất nhập dữ liệu chạy trên trình duyệt; thành phần xử lý (viết bằng PHP) chạy trên web server.

    Khi học ngôn ngữ lập trình PHP, bạn đồng thời cũng phải học và hiểu tất cả các thành phần liên quan.

    Dĩ nhiên, để học phát triển ứng dụng web, bạn phải biết tất cả các vấn đề trên. Tuy nhiên, với mục đích học ngôn ngữ PHP cơ bản ban đầu, chúng lại trở thành yếu tố nhiễu gây cản trở việc tiếp thu các vấn đề của riêng ngôn ngữ PHP.

    Việc bắt đầu ngay với ứng dụng web khiến nhiều người lầm tưởng về khả năng của PHP. Thực tế PHP không hề bị giới hạn trong web như nhiều người vẫn nghĩ. PHP là một ngôn ngữ lập trình script hoàn toàn “bình thường” tương tự như Python.

    Việc bắt đầu bằng PHP CLI đem lại một số lợi ích riêng.

    PHP CLI giúp bạn viết các ứng dụng với giao diện dòng lệnh (console) đơn giản nhất. Qua đó, việc học tập trung vào chính cú pháp của ngôn ngữ. Bạn không bị nhiễu bởi các thành phần của ứng dụng web (mô hình client/server, HTML, CSS).

    Việc sử dụng PHP CLI từ đầu giúp bạn đi theo con đường học lập trình quen thuộc bắt đầu từ ứng dụng console giống như khi học C/C++, C#, Java, Python.

    Học lập trình PHP từ CLI giúp bạn hình dung đầy đủ hơn về khả năng của PHP như một ngôn ngữ lập trình “bình thường” như Python hay C#, chứ không phải là một ngôn ngữ chỉ dành cho web.

    Sử dụng được PHP CLI cũng giúp bạn mở rộng khả năng sử dụng PHP cho những tác vụ khác như viết các script quản trị hệ thống. Từ khía cạnh này, bạn có thể sử dụng PHP ở những công việc tương tự như Python.

    Sử dụng PHP CLI

    Khi sử dụng PHP trong gói AMP, bạn sẽ phụ thuộc vào sự hỗ trợ của gói. Thông thường các gói AMP không hỗ trợ phiên bản mới nhất của PHP (do yêu cầu về tính ổn định).

    Do PHP CLI được sử dụng độc lập với web server, bạn luôn nên cài đặt bản PHP mới nhất. Việc cài đặt bản PHP mới nhất cũng giúp bạn khám phá những cập nhật của ngôn ngữ.

    Để sử dụng PHP CLI, bạn cần mở Command Prompt (cmd) của Windows.

    Để tiện lợi, bạn cần thêm đường dẫn tới thư mục cài PHP (ví dụ, C:\php) vào danh sách PATH của hệ thống (windows).

    Kiểm tra phiên bản PHP đang sử dụng trên hệ thống: php -version hoặc php -v

    Trợ giúp sử dụng PHP CLI: php --help

    PHP CLI có rất nhiều khả năng khác nhau. Dưới đây là những lệnh thông dụng và hữu ích hơn cả cho quá trình học PHP.

    Chạy file script

    php --file đường_dẫn_tới_file_php

    Tham số –file không bắt buộc. Bạn có thể gọi lệnh tắt php đường_dẫn_tới_file_php. Đây là lệnh bạn đã sử dụng trong bài học trước (cài đặt môi trường cho PHP).

    Đây là lệnh sử dụng nhiều nhất khi học PHP căn bản trong tài liệu này.

    Trong giai đoạn đầu chúng ta sẽ sử dụng một IDE hoặc text editor để viết script và chạy thử nghiệm mà không sử dụng web server.

    Thực thi một đoạn code PHP

    php -r "mã lệnh PHP"

    Lưu ý: mã lệnh PHP phải đặt trong cặp dấu “” và kết thúc bằng dấu chấm phẩy: php -r "echo 'Hello world';"

    Lệnh này rất tiện lợi để test nhanh kết quả thực hiện cách lệnh ngắn hoặc các hàm đơn giản thay cho việc viết cả file script.

    Xem thông tin chi tiết về hàm hoặc lớp

    php --rf tên_hàm hoặc php --rc tên_class

    Cặp lệnh này đóng vai trò trợ giúp khi bạn học cách làm việc với một hàm hoặc class sẵn có trên PHP. Nó hiển thị thông tin chi tiết về tham số của hàm hoặc các thành phần của class.

    Chạy chế độ tương tác của PHP

    php -a

    Chế độ tương tác (interactive shell/mode) là một chế độ lập trình theo mô hình REPL (Read-Evaluate-Print Loop). Ở mô hình này, thay vì phải viết các file script, bạn lần lượt nhập trực tiếp các lệnh của ngôn ngữ PHP vào dấu nhắc lệnh. PHP sẽ đọc, thực thi và in ra ngay kết quả (nếu có).

    Đây là mộ chế độ lập trình rất hiệu quả để bạn thử nghiệm code trước khi đưa vào script, giúp rút ngắt thời gian viết và thử nghiệm code.

    Chế độ tương tác rất phổ biến. Các ngôn ngữ như Python, C#, F#, v.v., đều có chế độ tương tác như vậy.

    Trong quá trình học PHP cơ bản chúng ta cũng sẽ tích cực sử dụng chế độ tương tác này.

    Chạy web server tích hợp

    php -S localhost:8000

    Bộ chương trình PHP có sẵn một web server đơn giản tích hợp. Nếu chưa có nhu cầu sử dụng một web server chính thức, bạn có thể kích hoạt server tích hợp này để test ứng dụng.

    Lệnh kích hoạt server này có dạng php -S <địa_chỉ>:<cổng>. Thông thường, địa chỉ trên máy cục bộ hay để là localhost (một alias của địa chỉ loopback 127.0.0.1) hoặc địa chỉ IP của một giao diện mạng (NIC) cụ thể. Cổng mặc định cho web server là 80. Tuy nhiên bạn nên sử dụng một giá trị khác ở cuối dải để tránh trùng cổng.

    Khi server đã được kích hoạt, bạn có thể chạy tất cả các script PHP chứa trong thư mục hiện hành qua trình duyệt:

    Trong ví dụ này, chúng ta kích hoạt web server nghe cổng 8000 trên localhost khi đang ở trong thư mục PhpProjects. Do vậy, bạn có thể truy xuất các script trong thư mục này qua địa chỉ localhost:8000/<tên_script>.php.

    Cấu hình PhpStorm để sử dụng PHP CLI

    Trong bài học về cài đặt môi trường phát triển ứng dụng PHP chúng ta đã nói về việc sử dụng PhpStorm với vai trò IDE chính.

    Khi chạy lần đầu, PhpStorm không biết gì về PHP cài đặt trên hệ thống. Bạn cần chỉ định phiên bản muốn sử dụng.

    Chọn Configure -> Settings -> chọn node Languages & Frameworks -> chọn node PHP.

    Bấm nút (1) để mở cửa sổ chọn CLI Interpreters.

    Trong cửa sổ CLI Interpreters bấm nút (2) để thêm một bộ PHP mới. PhpStorm có thể lưu trữ cấu hình cho nhiều CLI khác nhau. Ví dụ, nếu bạn cần sử dụng nhiều phiên bản PHP khác nhau để test ứng dụng. Phổ biến nhất là test code trên PHP 5.x và PHP 7.x.

    Ấn nút số (3) để mở cửa sổ chọn file php.exe. Lưu ý nếu bạn lựa chọn phiên bản PHP nào thì nên bổ sung đường dẫn thư mục của nó (trong ví dụ trên C:\php) vào danh sách PATH của hệ thống (windows). Khi sử dụng terminal, bạn có thể dễ dàng gọi lệnh php.exe mà không cần đến đường dẫn đầy đủ.

    Ở ô nhập số 4 đặt một tên gọi bất kỳ.

    Ấn OK để quay lại cửa sổ Settings.

    Trong danh sách PHP Language Level chọn mức cao nhất có thể. Lựa chọn này quyết định tính năng của PHP sẽ được sử dụng cho project. Các phiên bản cao hơn sẽ có nhiều tính năng mới.

    Đến đây bạn hoàn thành cấu hình PHP cho PhpStorm.

    Hãy tạo một project PHP mới (Create New Project) đặt tên là LearnPHP. Trong project này tạo file script đầu tiên index.php và viết code như sau:

    <?php
    echo "Hello world from PHP CLI\r\n";
    $name = readline('Your name, please: ');
    echo "Hello, $name. Welcome to heaven!";

    Một cách tiện lợi để chạy một script ở chế độ CLI trong PhpStorm là tạo Run Configuration cho file script cần chạy:

    1. Click phải vào file script php cần thực thi (ví dụ, file index.php vừa tạo);
    2. Chọn lệnh Create Run Configuration (chọn tiếp mục PHP script);
    3. Ở cửa sổ Create Run Configuration cho file tương ứng chỉ cần ấn OK.

    Giờ bạn có thể ấn tổ hợp Shift + F10 hoặc nút lệnh số (1) để chạy file script trong cửa sổ Run (2).

    Bạn cũng có thể phát lệnh chạy file script từ cửa sổ Terminal (3) với lệnh: php index.php

    Chú ý cửa sổ Terminal của PhpStorm có thể xem là tương đương với Command Prompt (cmd) của Windows, thậm chí còn tiện lợi hơn. Bạn nên sử dụng PHP CLI trực tiếp từ Terminal, thay vì chạy chương trình Command Prompt riêng.

    Cài đặt PHP XDebug cho PhpStorm

    Khi lập trình bạn có thể gặp các lỗi runtime – loại lỗi về logic phát sinh trong quá trình thực thi ứng dụng. Loại lỗi này khác biệt với lỗi cú pháp, còn gọi là lỗi compile time – loại lỗi phát sinh trong khi viết code do không tuân thủ quy tắc cú pháp của ngôn ngữ.

    Lỗi compile time rất dễ phát hiện nếu sử dụng một IDE hoặc text editor hỗ trợ ngôn ngữ PHP. Tuy nhiên, để phát hiện nguồn gây lỗi runtime thường khó khăn hơn nhiều.

    Một trong những kỹ thuật phổ biến nhất để dò lỗi runtime là debug. Kỹ thuật này sẽ gắn một chương trình / đoạn code nhỏ – gọi là debugger – vào ứng dụng khi thực thi. Debugger giúp theo dõi những gì diễn ra khi thực thi code, cho phép dừng thực thi, và kiểm tra giá trị các biến.

    PHP mặc định không cung cấp công cụ dò lỗi debugger. Bạn phải tự mình cài đặt riêng. Công cụ dò lỗi phổ biến nhất trên PHP là XDebug. Tiếp theo đây chúng ta sẽ cùng xem xét cách cài đặt XDebug.

    Bước 1. Tải file thư viện Xdebug cho windows từ trang Xdebug: Downloads

    Lựa chọn phiên bản XDebug phù hợp với phiên bản PHP bạn đang sử dụng.

    Ví dụ, nếu bạn chạy PHP 8.0 64 bit NTS thì lựa chọn file PHP 8.0 VS16 (64 bit). Nếu sử dụng PHP TS (ThreadSafe) thì lựa chọn bản TS tương ứng cho Xdebug.

    Bước 2. Copy file dll vào thư mục php\ext.

    Bước 3. Mở file php.ini và thêm vào cuối file nội dung như sau:

    [xdebug]
    zend_extension = C:\php\ext\php_xdebug-3.0.3-8.0-vs16-nts-x86_64.dll
    xdebug.mode=debug
    xdebug.client_host=127.0.0.1
    xdebug.client_port=9003

    Chú ý ở zend_extension cần chỉ đúng đường dẫn tuyệt đối đến file thư viện xdebug.

    Bước 4. Kiểm tra trong PhpStorm

    Mở File -> Settings -> Languages & Frameworks -> PHP, click vào nút đánh dấu đỏ:

    Nếu cấu hình chính xác các bước trên, bản PHP tương ứng sẽ chỉ phiên bản Debugger đang sử dụng.

    Bước 5. Kiểm tra trong terminal

    Một cách khác để kiểm tra xem xdebug đã hoạt động chưa là sử dụng lệnh php --version trong Command Prompt:

    php --version
    PHP 8.0.0 (cli) (built: Nov 24 2020 22:02:58) ( NTS Visual C++ 2019 x64 )
    Copyright (c) The PHP Group
    Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Xdebug v3.0.3, Copyright (c) 2002-2021, by Derick Rethans

    Kết luận

    Trong bài học này chúng ta đã cùng tìm hiểu chi tiết về cách sử dụng PHP CLI:

    • Đây là một công cụ rất tốt để học ngôn ngữ PHP, giúp tránh những phức tạp không cần thiết của web ở giai đoạn đầu, cũng như giúp khám phá những tính năng mới của ngôn ngữ nhanh chóng dễ dàng.
    • Để sử dụng PHP CLI bạn nên tải bộ file zip mới nhất từ website chính thức php.net và đặt đường dẫn thư mục tương ứng vào PATH của hệ thống.
    • PHP CLI cho phép thực hiện nhiều công việc quan trọng: chạy file script, chạy mã lệnh PHP, chạy chế độ tương tác, trợ giúp hàm/class, chạy web server tích hợp.
    • Bạn cũng học cách cấu hình PhpStorm để sử dụng cùng PHP CLI và tạo project đầu tiên trong PhpStorm.

    + Nếu bạn thấy site hữu ích, trước khi rời đi hãy giúp đỡ site bằng một hành động nhỏ để site có thể phát triển và phục vụ bạn tốt hơn.
    + Nếu bạn thấy bài viết hữu ích, hãy giúp chia sẻ tới mọi người.
    + Nếu có thắc mắc hoặc cần trao đổi thêm, mời bạn viết trong phần thảo luận cuối trang.
    Cảm ơn bạn!

    Subscribe
    Notify of
    guest
    1 Thảo luận
    Oldest
    Newest
    Inline Feedbacks
    View all comments
    Phuong Do

    Hay quá ạ. Giờ mình mới gặp một tài liệu dạy php theo cách này.