Nội dung Để 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 đó. 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. Trước tiên, bạn download thư viện dnode-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/Cài đặt Composer
Xem chi tiết hướng dẫn cài đặt Composer cho PHP Project.Cài đặt DNode
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.
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