Hướng dẫn dùng node replacewith trong PHP

Nội dung

  • 1 Cài đặt Composer
  • 2 Cài đặt DNode
  • 3 Sử dụng DNode
    • 3.1 Gọi hàm php từ node.js
    • 3.2 DNode gọi node module khác

Để kết nối giữa nodejs và php, chúng ta sử dụng thư viện DNode ý tưởng giao tiếp giữa nodejs và một ngôn ngữ tạo client không được hỗ trợ mặc định đó là cài đặt một thư viện nhận dạng chung trên node.js server và php client. Khi php phát tín hiệu vào node.js sử dụng thư viện này, lúc này trên server sẽ nhận được dữ liệu truyền đến từ php thông qua thư viện đó.

Cài đặt Composer

Composer là thư viện cho phép bạn cài đặt các thư viện ngoài và giúp chúng ta include vào ứng dụng web một cách dễ dàng, với những thư viện yêu cầu sử dụng phụ thuộc vào thư viện khác nữa, đây là cách mới để bạn cài thư viện bên thứ 3 cung cấp vào website.
Xem chi tiết hướng dẫn cài đặt Composer cho PHP Project.

Cài đặt DNode

Trước tiên, bạn download thư viện dnode-php.
DNode là giao thức cho php, là module DNode sử dụng trong node.js. Một Lời gọi thủ tục từ xa thiết kế cho ngôn ngữ PHP.

DNode cũng là một module được phân phối trên node.js, cho phép php scripts tương tác với server node.js và ngược lại từ node gọi file thực thi lệnh PHP. Xem chi tiết tại blog //bergie.iki.fi/blog/dnode-make_php_and_node-js_talk_to_each_other/

Giải nén file zip sau khi tải về xong, chép thư mục chứa thư viện DNode src/DNode vào thư mục “src” trong dự án.
Tiếp đến, mở composer.json tìm trong thư mục giải nén và thêm nội dung các trường “require”, “autoload” vào composer.json gốc của folder dự án web.

"require": {
        "php": ">=5.3.0",
        "evenement/evenement": "~1.0",
        "react/socket": "0.3.*"
    },
    "autoload": {
        "psr-0": {
            "DNode": "src"
        }
    }

Ok, tiến hành cài đặt dnode-php sử dụng công cụ composer. Gõ lệnh sau để cập nhật thêm thư viện DNode vào autoload.

$ php composer.phar install


Chúng ta đang chọn cách cài đặt độc lập [standalone] cho thư viện trong trường hợp bằng cách nào đó bạn đã có các files nguồn của thư viện. Tuy nhiên thư viện này đã có trên getcomposer.org, bạn có thể cài DNode bằng cách khai báo vào package dependencies.
"require": {
        "dnode/dnode": "0.2.0",
    },

Tìm phiên bản dnode thích hợp trên //packagist.org, phiên bản mới nhất hiện tại là 0.2.0
Tuy nhiên, ở manifest composer.json trên còn khai báo thêm 2 thư viện cần được cài đặt nữa là evenement/evenement, react/socket, trước đó bạn đã chạy lệnh cài đặt php composer.phar install cho các thư viện khai báo một lần trong composer.json thì file composer.lock đã tạo ra và bạn không thể sử dụng lệnh này nữa để cài thêm thư viện khác. Nếu chạy lệnh install lần sau bạn sẽ thấy thông báo này.

Lệnh này chỉ sử dụng để cài mới trong lần đầu, lần cài thư viện tiếp theo bạn thay lệnh install bằng update.

php composer.phar update

Lệnh trên có tác dụng cập nhật lại composer.lock hoặc nếu không thích thì tạo mới file composer.lock bằng lệnh cài đặt ban đầu. Để làm điều này bạn xóa đi file composer.json cũ và tạo file mới với lệnh quen thuộc:

php composer.phar install

Kết quả các thư viện vừa thêm còn lại đã được cài đặt.

Sử dụng DNode

Chèn file vendor/autoload.php vào trong code để bắt đầu sử dụng thư viện. Ví dụ đơn giản mình sẽ tạo file demo.php lưu tại thư mục gốc của ứng dụng nằm chung với thư mục vendor và Thêm đoạn code sau.

require 'vendor/autoload.php';

Bạn có thể sử dụng ngay lớp DNode có địa chỉ namespace DNode/DNode bằng cách tạo đối tượng instance cho nó. DNode có nhiều classes được sử dụng để kết nối tới Nodejs server tạo bởi DNode

// Connect to DNode server running in port 7070 and call 
$loop = new React\EventLoop\StreamSelectLoop[];	//instance
//create instance
$client = new DNode\DNode[$loop];

Chúng ta cần một DNode server, trên môi trường nodejs các bạn sẽ cài đặt thêm module dnode, chúng ta sử dụng module này để tạo server mới mà không phải tạo server từ module nodejs http. Bởi vì module dnode không chạy trên trình duyệt nó chỉ dùng để kết nối giữa các ngôn ngữ lập trình khác nhau ngoài ngôn ngữ chính javascript và node.js vd: PHP, java

Cài đặt module dnode cho ứng dụng nodejs của bạn, nếu chưa có với lệnh cmd sau:

npm install dnode

Chú ý: Phiên bản dnode hiện yêu cầu máy tính của bạn phải có python >=2.5.0 và < 3.0.0 , nếu chưa cài python hoặc python khác phiên bản này thì cài thêm vào máy tính. Ví dụ, python 3.4.1 khi cài module dnode có báo lỗi như sau:

Bạn có thể cài nhiều bản python trên một máy tính. Mặc định python được cài vào ổ c:


Chỉ định phiên bản python trong lệnh cài cho các nodejs module có sử dụng python, ví dụ dnode.
npm install dnode [email protected]">=2.5.0 

Chủ Đề