1. Trang chủ
  2. » Công Nghệ Thông Tin

Làm chủ việc phát triển ứng dụng Facebook bằng PHP, IBM Rational Application Developer, IBM WebSphere Application Server và DB2, Phần 2: Sử dụng đồng thời Java và PHP potx

75 302 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 75
Dung lượng 548,25 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tìm hiểu một cách tiếp cận để phân chia chức năng của một ứng dụng giữa các thành phần PHP và Java, và sử dụng khung công tác Spring để áp dụng một kiến trúc MVC tiêu chuẩn đối với mã Ja

Trang 1

Làm chủ việc phát triển ứng dụng Facebook bằng PHP, IBM Rational Application Developer, IBM WebSphere Application Server và DB2, Phần 2:

Sử dụng đồng thời Java và PHP

Jake Miles, Tác giả tự do, 软通动力信息技术有限公司

Tóm tắt: Phần 2 của loạt hướng dẫn này bao gồm các chi tiết liên quan đến việc

phát triển ứng dụng Facebook mà bạn đã bắt đầu trong Phần 1 Xây dựng một giao diện Facebook cho một công ty môi giới chứng khoán đang hoạt động, cho phép quản lý trực tuyến danh mục đầu tư Tìm hiểu một cách tiếp cận để phân chia chức năng của một ứng dụng giữa các thành phần PHP và Java, và sử dụng khung công tác Spring để áp dụng một kiến trúc MVC tiêu chuẩn đối với mã Java ™ Loạt bài hướng dẫn này dẫn dẫn dắt bạn đi qua quy trình phát triển một ứng dụng Facebook đầy đủ chức năng bằng cách sử dụng WebSphere® Application Server (Máy chủ ứng dụng WebSpher), Rational® Application Developer (Bộ Phát triển ứng dụng Rational), Zend Core cho IBM, PHP 5 và DB2®

Trước khi bạn bắt đầu

Về loạt bài này

Loạt bài hướng dẫn này dẫn dắt bạn đi qua quy trình phát triển một ứng dụng Facebook đầy đủ chức năng bằng cách sử dụng WebSphere Application Server, Rational Application Developer, Zend Core for IBM, PHP 5 và DB2 Bạn sẽ xây dựng một phần của ứng dụng bằng cách sử dụng mã Java và một phần bằng PHP

5 Làm đại diện cho một công ty môi giới chứng khoán đang hoạt động, bạn sẽ thêm một giao diện Facebook vào hệ thống quản lý trực tuyến danh mục đầu tư của họ

Trang 2

 Trong Phần 1 bạn đã có một cái nhìn khái quát về phát triển ứng dụng Facebook, và đã bắt đầu bằng một ứng dụng khung sườn

 Trong Phần 2 bạn sẽ thực hiện công việc khởi đầu để tạo ra phía Java của ứng dụng một dự án Rational Application Developer và ứng dụng web bằng cách sử dụng khung công tác Spring nổi tiếng

 Phần 3 sẽ giải quyết các công việc đặc thù cho việc thực hiện một ứng dụng Facebook đầy đủ các chức năng bằng cách sử dụng Ngôn ngữ Đánh dấu Facebook (FBML), Facebook JavaScript (FBJS), và Facebook API trong cả hai ngôn ngữ Java và PHP

ra và lập cấu hình ứng dụng trên Facebook, đã tạo ra một tệp index.php thử

nghiệm đối với URL Callback, và sau đó thiết lập cơ sở dữ liệu DB2, tạo ra một số bảng cơ sở và điền vào các dữ liệu mẫu để bắt đầu

Trong hướng dẫn này, Phần 2 của loạt bài, bạn sẽ lập ra một dự án Rational

Application Developer để tạo điều kiện phát triển Java, tạo cấu hình một nguồn dữ liệu DB2 đã đăng ký kết nối JNDI trong IBM WebSphere Application Server, và

sử dụng khung công tác Spring để áp dụng một cấu trúc MVC cho mã Java để áp

Trang 3

đặt một cấu trúc truy cập JDBC Sau đó bạn sẽ viết ra một số lớp PHP đa dụng, cho phép bạn áp dụng cùng cấu trúc MVC ấy với mã PHP và cho phép bạn thêm các thuộc tính vào các cá thể lớp giống như bạn làm trong Spring Bạn sẽ viết ra một lớp PHP Db2DataSource đa dụng để kết nối với DB2, và sử dụng mod_rewite

và mod_proxy để cho PHP và Java cùng tồn tại một cách trong suốt tại cùng một URL Hướng dẫn này sẽ cấu trúc nên thế giới Java và PHP giống nhau nhất đến mức có thể, vì một trong những rào cản để tích hợp hai thế giới đó là ở chỗ các nhà phát triển PHP và Java thường đến từ các nền tảng khác nhau, và nhìn các thế giới này theo các cách khác nhau Hai ngôn ngữ này có thể cùng tồn tại trong cùng một ứng dụng (và cùng một nhóm phát triển) rất thành công, và với một mức độ trừu tượng cao và cấu trúc sạch một cách toàn diện

Các đều kiện tiên quyết

Hướng dẫn này dành cho các nhà phát triển Java và PHP có mức kinh nghiệm khác nhau, những người muốn bắt đầu viết các ứng dụng Facebook trong Java, PHP hoặc tích hợp cả hai như là những bộ phận của một ứng dụng lớn hơn Nó dành cho các nhà phát triển PHP, những người muốn tìm hiểu công việc xây dựng một ứng dụng J2EE bằng cách sử dụng khuôn mẫu Spring và cách áp dụng một cấu trúc hướng đối tượng vào các ứng dụng PHP của họ, và dành cho những người phát triển Java muốn bắt đầu sử dụng PHP, có thể vì mục đích thêm PHP vào ứng dụng Java doanh nghiệp hiện hành

Bạn nên đọc Mastering Facebook application development, Part 1 (Làm chủ ứng dụng Facebook, Phần 1) trước khi tiếp tục Phần 2

Trang 4

Yêu cầu về hệ thống

Để hoàn thành các bước trong hướng dẫn này, bạn cần các phần mềm sau Nếu bạn chưa cài đặt các sản phẩm này, hoặc không có phiên bản mới nhất, bạn có thể tải về các phiên bản dùng thử miễn phí:

 Tải về một phiên bản dùng thử miễn phí Spring Framework Tôi sử dụng phiên bản 2.5.3, bản phát hành mới nhất

 Tải về một phiên bản dùng thử miễn phí Rational Application Developer Bạn sẽ sử dụng Rational Application Developer như là một bản IDE đầy đủ tính năng dựa trên Eclipse để phát triển ứng dụng Web Java của bạn

 Tải về một phiên bản dùng thử miễn phí IBM WebSphere Application Server V6.1

 Tải về Zend Core For IBM (gồm có IBM DB2® Express-C)

 Zend Studio là một công cụ tuyệt vời để viết mã PHP, mặc dù có thể dùng trình soạn thảo văn bản nào cũng được

Bổ sung Java cùng với PHP

Trong Phần 1 bạn đã nhận được bên PHP của ứng dụng đang chạy Bây giờ bạn sẽ thực hiện việc khởi tạo ban đầu để tạo ra bên Java của ứng dụng một dự án Rational Application Developer và ứng dụng web bằng cách sử dụng khung công tác Spring nổi tiếng Sau đó bạn sẽ viết ra các lớp PHP cho phép bạn áp đặt cùng một mẫu MVC lên mã PHP như trong Java, và tạo một proxy đảo ngược từ

Trang 5

Apache đến IBM WebSphere bằng cách sử dụng mod_rewrite và mod_proxy, do

đó bạn có thể sử dụng cùng một URL Facebook Callback đối với các máy chủ PHP và Java Sau đó bạn sẽ sử dụng tập tin htaccess để gửi các yêu cầu đến PHP hoặc Java tùy thuộc vào URI yêu cầu Một cấu trúc chung giữa các máy chủ Java

và PHP của bạn sẽ làm cho sự tích hợp của chúng dễ dàng hơn và cho phép bạn (hoặc nhóm của bạn) sử dụng bất cứ công nghệ nào thích hợp hơn cho mỗi mảnh của ứng dụng Facebook, và việc sử dụng proxy và htaccess sẽ tách rời mặt trước với việc sử dụng hai công nghệ của bạn ở mặt sau

Thiết lập dự án Rational Application Developer

Làm theo các bước sau để thiết lập một dự án trong Rational Application

Developer:

1 Mở Rational Application Developer từ trình đơn Start: Start > All

Programs > IBM Software Development Platform > IBM Rational Application Developer > IBM Rational Application Developer

2 Tạo một dự án Java mới (File > New > Project), chọn Dynamic Web Project làm kiểu dự án và WebSphere Application Server v6.1 làm môi

trường chạy đích

Phải chắc chắn đã đánh dấu chọn các khía cạnh (facet) của dự án Dynamic Web Module, Java, JSTL, và khía cạnh WebSphere web

3 Đặt gốc ngữ cảnh ở facebook-stock-demo, thư mục nội dung vào mặc định

của WebContent, và thư mục nguồn Java vào src Rational Application

Developer sau đó sẽ tạo ra cấu trúc dự án ứng dụng web tiêu chuẩn cho bạn

và bạn chỉ cần điền nó vào

Trang 6

Hợp nhất khung công tác Spring

Thêm khung công tác Spring đa năng vào ứng dụng

1 Tải về phiên bản khung công tác Spring với tất cả các phần phụ thuộc (xem Prerequisites để có một đường liên kết)

2 Giải nén nó vào vị trí có ích nào đó, thí dụ c:\ (việc giải nén các tập tin có thể mất một thời gian), và từ thư mục dist sao chép tệp spring.jar và tất cả các tệp JAR dưới thư mục dist/modules vào thư mục WEB-INF/lib của dự

án Bạn có thể tìm thấy thư mục WEB-INF/lib của dự án của bạn bằng cách

chuyển đến Project > Properties và xem ô Info Thí dụ, tôi đã sao chép

chúng vào C:\Documents and

Settings\jmiles\IBM\rationalsdp7.0\workspace\facebook-stock-demo\WebContent\WEB-INF\lib

3 Bổ sung thêm commons-logging.jar vào đường dẫn lớp (classpath) của dự

án của bạn, từ thư mục lib/jakarta-commons của khung công tác Spring,

thông qua Project > Properties > Java Build Path > Add External JARs

(xem Hình 1) Không được sao chép JAR này vào thư mục lib của bạn; nó

sẽ gây ra một lỗi khi triển khai WebSphere

Hình 1 Thêm các JAR bên ngoài vào dự án Rational Application

Trang 7

Developer của IBM

4 Làm mới vùng làm việc (nhấn chuột phải vào tên dự án và chọn Refresh),

và khung nhìn Project Explorer sẽ cập nhật tất cả các JAR được thêm vào

Trang 8

Hình 2 Mở web.xml bằng một trình soạn thảo văn bản trong Rational Application Developer

Thay nội dung bằng nội dung của Liệt kê 1

Liệt kê 1 web.xml

Trang 9

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

name>

Trang 10

Tiếp theo bạn cần có một tập tin Spring-servlet.xml để lập cấu hình cho các bean Spring Spring theo mặc định sẽ nối thêm đuôi “-servlet.xml” vào phần tử

<servlet-name> trong web.xml làm tên của tập tin cấu hình, do đó trong khung nhìn Project Explorer, hãy tạo một tập tin văn bản mới trong thư mục WEB-INF

có tên là spring-servlet.xml Bạn có thể phải đóng tập tin và nhấn chuột phải vào

nó để mở ra bằng một trình soạn thảo văn bản nếu Rational Application Developer

mở nó ra theo mặc định trong một trình soạn thảo XML Dán nội dung của Liệt kê

2 vào spring-servlet.xml

Liệt kê 2 Spring-servlet.xml ban đầu

Trang 12

<bean id="urlMapping" class="org.springframework.web.servlet

Trang 13

</beans>

Bean đầu tiên quy định cách thức mà các tên khung nhìn được ánh xạ vào URL Bất cứ khi nào một trình điều khiển trả lại một tên khung nhìn, trình phân giải khung nhìn (view resolver) sẽ nối thêm phần đầu /WEB-INF/jsp/ vào nó, tạo ra chẳng hạn tệp /WEB-INF/jsp/stocks.jsp để đáp ứng lại tên khung nhìn stocks.jsp Bean thứ hai ánh xạ các URL vào các trình điều khiển spring, trong trường hợp này nó ánh xạ một url đơn lẻ, /stockList, vào bean điều khiển bằng id

stockListController, mà được định nghĩa như là bean thứ ba trong tập tin này Định nghĩa bean stockListController nội xạ một thuộc tính successView với đối tượng StockListController để giữ các tên của các khung nhìn nằm bên ngoài mã Java

Thêm vào một lớp trình điều khiển Spring và khung nhìn tương ứng

Để thêm vào một lớp trình điều khiển Spring và khung nhìn tương ứng, hãy làm như sau:

1 Tạo một gói dưới thư mục src bằng cách nhấn chuột phải vào Java

Resources: src trong khung nhìn Project Explorer và chọn New >

Package Tôi gọi gói của tôi là com.jm.fbstockdemo

Trang 14

2 Nhấn chuột phải vào gói mới này và tạo một lớp StockPriceController có thực hiện org.springframework.web.servlet.mvc.Controller Bạn có thể chỉ

cần gõ Controller sau khi nhấn vào Add và Rational Application Developer

sẽ thu hẹp danh sách các tùy chọn tương ứng khi bạn gõ nhập

3 Điền vào nó một triển khai thực hiện cơ bản nhất có thể, đơn giản chỉ thực hiện trả lại một tên khung nhìn để biểu hiện (xem Liệt kê 3)

Liệt kê 3 Một lớp StockListController ban đầu (Java)

Trang 15

}

4 Tiếp theo nhấn chuột phải vào WEB-INF và tạo một thư mục jsp

5 Trong thư mục jsp tạo tệp stockList.jsp ban đầu, có chứa xml để kiểm thử như Liệt kê/như trong Liệt kê 4

Liệt kê 4 Một stockList.jsp ban đầu

Trang 16

<price>3000</ticker>

</stock>

</stockList>

Triển khai vào WebSphere Application Server

Với ứng dụng Spring Java khung sườn đã viết, giờ đây bạn có thể triển khai nó vào WebSphere Application Server (Máy chủ ứng dụng WebSphere)

1 Tạo tập tin WAR bằng cách nhấn chuột phải vào dự án trong Rational

Application Developer, và chọn Export > WAR file

2 Trong cửa sổ Save As, di chuyển đến thư mục của dự án (như bạn đã làm trên đây) và tạo một thư mục mới có tên dist bên cạnh các thư mục src và WebContent Thí dụ, tôi đã ghi lưu tệp WAR là c:\Documents và

Settings\jmiles\IBM\rationalsdp7.0\workspace\facebook-stock-demo\dist\facebook-stock-demo.war

3 Nhấn Finish Rational Application Developer sẽ bao bọc ứng dụng một

cách thành thục thành facebook-stock-demo.war

4 Để triển khai tập tin WAR, khởi động một cá thể máy chủ ứng dụng

WebSphere qua Start>All Programs>IBM WebSphere > Application Server v6.1 > Profiles > [your profile name] > Start the server (xem

Trang 17

Hình 3) Đợi nó khởi động (một cửa sổ nhắc lệnh sẽ xuất hiện, hiển thị thông tin khởi động, sau đó biến mất), và sau đó di chuyển đến bàn điều khiển (Administrative Console) qua cùng đường dẫn của trình đơn Start Thao tác này sẽ mở ra bàn điều khiển của cá thể WebSphere của bạn trong trình duyệt Web

Hình 3 Khởi động Máy chủ Ứng dụng WebSphere từ trình đơn khởi động Windows

5 Đăng nhập vào bàn điều khiển admin, mở phiếu Applications và chọn

Install New Application

6 Chọn Local file system, di chuyển đến tệp tin WAR của bạn và chọn nó

7 Chỉ rõ /facebook-stock-demo làm bối cảnh gốc, và nhấn Next Giữ nguyên tất cả các giá trị mặc định trên màn hình các tùy chọn cài đặt và nhấn Next

8 Trên màn hình “Map modules to servers” chọn ứng dụng web của bạn để thêm nó vào server1

9 Nhấn vào Finish trên màn hình summary, và WebSphere sẽ cài đặt ứng dụng web Hãy chắc chắn nhấn vào Save dưới đáy màn hình đầu ra khi cài

đặt hoàn tất

Trang 18

10 Nhấn vào Enterprise Applications ở bên trái, và bạn sẽ thấy ứng dụng của bạn nằm trong danh mục các ứng dụng đã cài đặt Chọn cái đó và nhấn Start để khởi động

11 Để xác nhận cổng mà ứng dụng của bạn đang chạy trên đó, hãy mở phần

Servers ở bên trái, nhấn Application servers, chọn server1, và trong phần Communications của cấu hình server1 nhấn Ports ((xem Hình 4)

WC_defaulthost chỉ rõ cổng mà qua đó bạn có thể truy cập ứng dụng web của bạn Trong cài đặt của tôi cổng này là 9083; thay thế giá trị ấy vào chỗ của WC_defaulthost trong tất cả các URL được chỉ ra sau đây

Hình 4 Tìm cổng HTTP của máy chủ của bạn trong Máy chủ ứng

Trang 19

dụng WebSphere

12 Cuối cùng, để xác nhận rằng tất cả hoạt động tốt, hãy mở một cửa sổ trình duyệt nữa, vào http://localhost:9083/facebook-stock-demo/action/stockList,

và bạn sẽ thấy xml của stockList.jsp

Ứng dụng web MVC Spring bây giờ đã được cài đặt và làm việc dưới IBM

WebSphere cung cấp một cấu trúc MVC tiêu chuẩn để phát triển mã ứng dụng Facebook của bạn trong đó

Cơ cấu một ứng dụng PHP tương tự như một ứng dụng Java Spring

Trang 20

Cấu trúc của một ứng dụng Web Java và DispatcherServlet của Spring cung cấp một mô hình tuyệt vời cho nửa PHP của ứng dụng Không ném qua cửa sổ những kết quả trừu tượng hóa hướng đối tượng đẹp đẽ như vậy, bạn sẽ nhanh chóng trực tiếp làm ra một số các lớp có thể giúp cho việc mô phỏng chức năng thêm thuộc tính của Spring và chức năng điều phối của MVC Bạn sẽ viết ra một lớp

Properties đọc các tệp tin thuộc tính, một lớp Injectable cho phép bạn thêm các thuộc tính từ các tệp tin đó vào các cá thể lớp, và một lớp ActionDispatcher sẽ điều phối một biến yêu cầu đến đúng lớp điều khiển để xử lý yêu cầu

Để viết mã PHP, bất kỳ trình soạn thảo văn bản nào cũng làm được, nhưng Zend Studio là tuyệt vời (xem Tài nguyên)

Đọc các giá trị từ các tệp tin thuộc tính

Để giữ cho những phần không thay đổi của ứng dụng nằm bên ngoài mã, bạn sẽ sử dụng một tập hợp các tệp tin thuộc tính và một lớp Properties đọc được chúng, lắp ráp một mảng kết hợp các thuộc tính mà phần còn lại của ứng dụng có thể sử dụng được, như trong liệt kê 5 (đặt Properties.php trong một thư mục con lib dưới thư mục fb_stock_demo)

Liệt kê 5 Properties.php

<?php

class Properties {

Trang 21

$lines =

Trang 23

if (! isset($this->props[$key])) {

throw new Exception

("Properties: unknown key $key");

mã dễ dàng hơn từ một môi trường này đến môi trường khác (ví dụ từ phát triển đến sản xuất) không phải viết đè lên các giá trị đó; bạn chỉ cần không sao chép các tập tin đặc trưng cho môi trường hoặc thiết lập cấp quyền truy cập chúng sao cho bạn không thể viết đè lên chúng được trong khi sao chép Thí dụ, ứng dụng này sẽ

sử dụng hai tập tin thuộc tính, app.properties và db.properties, ở đây

app.properties chứa các hằng số như khoá mã và bí mật API Facebook (Facebook API Key and Secret), còn db.properties chứa thông tin đăng nhập cơ sở dữ liệu

Trang 24

Liệt kê 6 Lớp Injectable (PHP)

Trang 25

get_class($this) '/' :

$propPrefix;

$this->setProperties ($properties);

Trang 26

Then chốt của lớp Injectable là phương thức get() đó là một phương thức thần

kỳ của PHP 5 Các phương thức thần kỳ là phương thức đặc biệt có sẵn trên tất cả các đối tượng PHP 5, mà PHP sử dụng để cung cấp cho các đối tượng các hành vi lõi đặc biệt; bất kỳ biến PHP và bất kỳ phương thức nào có tên bắt đầu bằng (hai gạch dưới) sẽ được coi là phương thức thần kỳ Bất cứ khi nào bạn truy cập một biến cá thể của một đối tượng, nếu biến đó không được tìm thấy trên đối tượng, PHP sẽ gọi phương thức get() của đối tượng để tìm ra giá trị của nó, chỉ cần cung cấp tên của biến được yêu cầu dưới dạng chuỗi ký tự Phương thức get() của lớp Injectable tìm kiếm thuộc tính đó trên đối tượng Properties, đặt thêm vào trước tên thuộc tính một tiền tố duy nhất của nó, mà mặc định là tên lớp của đối tượng Injectable theo sau bởi một dấu gạch chéo (Ghi chú: sử dụng dấu chấm (dot) sẽ gây ra các vấn đề cho trình phân tích PHP) Điều này làm cho việc thêm các thuộc tính từ bên ngoài vào trong một cái gì đó, ví dụ như một lớp kết nối cơ sở dữ liệu trở thành một việc tầm thường, và bạn sẽ làm ngay sau đây Các thuộc tính được thêm vào có thể được tham chiếu đến đối tượng đích như các biến

cá thể bình thường, cứ như là chúng đã được đặt trong mã rồi

Do đó bây giờ bạn có thể thêm bất kỳ thuộc tính nào mà bạn cần vào một đối tượng bằng cách chỉ rõ giá trị thuộc tính trong một tập tin thuộc tính bên ngoài, tương tự như hành vi Spring-servlet.xml của Spring Điều này rõ ràng là một

Trang 27

nhóm phụ rất nhỏ các chức năng của Spring, nhưng lại khá hữu ích trong việc giữ cho mã Java và mã PHP có cấu trúc tương tự và sạch sẽ

Viết ActionDispatcher

Để duy trì một sự đối xứng với khung MVC của Spring, bạn sẽ sử dụng các lớp điều khiển như bạn đã làm trong Spring, mỗi lớp dành cho một yêu cầu, và sử dụng cùng một phép trừu tượng hóa ánh xạ các khoá URI với các tên lớp điều khiển, sao cho URI có thể chỉ cần chỉ định rõ một khoá cho yêu cầu đó, và

ActionDispatcher sẽ tạo ra và gọi đúng đối tượng điều khiển để đáp ứng lại yêu cầu, như trong Liệt kê 7 (đặt ActionDispatcher.php vào trong thư mục con lib)

Liệt kê 7 Lớp ActionDispatcher (PHP)

Trang 30

cá thể của điều khiển đó (bạn cũng có thể sử dụng các lớp phản chiếu Zend 2 để làm việc này), đặt đối tượng Properties lên điều khiển đó, và gọi ra phương thức execute() của trình điều khiển đó, nhận được một đối tượng đáp ứng Sau đó nó gọi phương thức respond() của đối tượng đáp ứng, chuyển tham số là chính nó trong trường hợp đối tượng đáp ứng cần đến Dãy lời gọi phương thức có chút tiến rồi lại lui này cho phép bạn thêm vào các kiểu đáp ứng khi cần thiết mà không bao giờ phải thay đổi execute() của trình điều khiển đó, nhận được một đối tượng đáp ứng Sau đó nó gọi phương thức respond() của đối tượng đáp ứng, chuyển tham số

là chính nó trong trường hợp đối tượng đáp ứng cần đến Dãy lời gọi phương thức

có chút tiến rồi lại lui này cho phép bạn thêm vào các kiểu đáp ứng khi cần thiết

mà không bao giờ phải thay đổi ActionDispatcher đấy là tinh thần lập trình hướng đối tượng

Trang 31

Các đối tượng đáp ứng xác định thực chất phải làm gì để biểu hiện đáp lại: nó tạo

ra một lớp cho mỗi kiểu đáp ứng để biểu hiện trong ActionDispatcher.php, như trong Liệt kê 8

Liệt kê 8 Các lớp đáp ứng của ActionDispatcher

Trang 33

}

Lớp ModelAndView cung cấp cùng một hành vi như ModelAndView của Spring Phương thức execute của điều khiển của bạn trả lại một đối tượng ModelAndView chứa đường dẫn tập tin của khung nhìn (view) để biểu hiện và một đối tượng mô hình nếu có, và khi ActionDispatcher gọi phương thức respond() của nó, respond() chỉ làm một việc tầm thường là gửi đi tệp tin khung nhìn tới cho trình xử lý PHP, bằng cách sử dụng phương thức include() Khung nhìn được gửi có quyền truy cập

vào các biến trong phạm vi của mã gọi ra, do đó bạn tạo ra một biến có tên $model

chứa đối tượng mô hình được cung cấp, đây là cái mà tất cả các khung nhìn mong đợi có thể tìm thấy (thậm chí nếu nó là rỗng)

Lớp ControllerForward là để dành cho một trình điều khiển làm một điều gì đó nhưng sau đó lại muốn chuyển điều khiển đến một trình điều khiển

ActionDispatcher khác Phương thức respond() của nó chỉ gọi lại

ActionDispatcher với khoá của trình điều khiển mới, khởi động một lần nữa toàn

bộ quá trình đối với trình điều khiển đó (nhưng không phải đọc lại tệp tin các thuộc tính)

Do tất cả các trình điều khiển phải cung cấp một phương thức execute() và để làm cho dễ dàng thêm các thuộc tính vào chúng, tất cả chúng sẽ đều là lớp con của lớp AbstractController (xem Liệt kê 9)

Liệt kê 9 AbstractController (PHP)

Trang 34

Sử dụng index.php để khởi động việc điều phối yêu cầu

Khi ActionDispatcher sẵn sàng xử lý các yêu cầu, nó cần phải được gọi ra Hãy tạo một tệp index.php tối thiểu, hành động như là điểm vào của hệ thống điều phối (xem Liệt kê 10)

Liệt kê 10 index.php

Trang 36

biến yêu cầu trình điều khiển (controller), chứa khoá của điều khiển để tạo và gọi

ra

index.php đóng một vai trò tương tự như web.xml trong ứng dụng Web Java, chuyển toàn bộ kiểm soát đến một trình điều phối yêu cầu đơn lẻ cấu hình được; DispatcherServlet của Spring về phía Java, ActionDispatcher trong PHP

Tạo ra một proxy đảo ngược từ Apache đến máy chủ ứng dụng

Để ngăn cách thế giới bên ngoài khỏi việc sử dụng hai máy chủ, hãy sửa đổi

httpd.conf và sử dụng một tệp tin htaccess cho proxy từ Apache đến máy chủ ứng dụng WebSphere đối với các yêu cầu mà bạn đã thực hiện trong java Trước tiên, trong httpd.conf (C:\Program Files\Zend\Apache2\conf\httpd.conf), thực hiện hai thay đổi:

Trang 37

1 Đảm bảo rằng các dòng trong Liệt kê 11 đã được bỏ dấu chú thích (nghĩa

là, phải chắc chắn rằng chúng không bắt đầu bằng một #)

Liệt kê 11.Kích hoạt mod_rewrite và mod_proxy trong httpd.conf

Ngày đăng: 07/08/2014, 09:23

HÌNH ẢNH LIÊN QUAN

Hình 2. Mở web.xml bằng một trình soạn thảo văn bản trong Rational  Application Developer - Làm chủ việc phát triển ứng dụng Facebook bằng PHP, IBM Rational Application Developer, IBM WebSphere Application Server và DB2, Phần 2: Sử dụng đồng thời Java và PHP potx
Hình 2. Mở web.xml bằng một trình soạn thảo văn bản trong Rational Application Developer (Trang 8)
Hình 3). Đợi nó khởi động (một cửa sổ nhắc lệnh sẽ xuất hiện, hiển thị  thông tin khởi động, sau đó biến mất), và sau đó di chuyển đến bàn điều  khiển (Administrative Console) qua cùng đường dẫn của trình đơn Start - Làm chủ việc phát triển ứng dụng Facebook bằng PHP, IBM Rational Application Developer, IBM WebSphere Application Server và DB2, Phần 2: Sử dụng đồng thời Java và PHP potx
Hình 3 . Đợi nó khởi động (một cửa sổ nhắc lệnh sẽ xuất hiện, hiển thị thông tin khởi động, sau đó biến mất), và sau đó di chuyển đến bàn điều khiển (Administrative Console) qua cùng đường dẫn của trình đơn Start (Trang 17)
Hình 5. Đường đi của một yêu cầu - Làm chủ việc phát triển ứng dụng Facebook bằng PHP, IBM Rational Application Developer, IBM WebSphere Application Server và DB2, Phần 2: Sử dụng đồng thời Java và PHP potx
Hình 5. Đường đi của một yêu cầu (Trang 42)
Hình 7. Truy cập dữ liệu trong PHP - Làm chủ việc phát triển ứng dụng Facebook bằng PHP, IBM Rational Application Developer, IBM WebSphere Application Server và DB2, Phần 2: Sử dụng đồng thời Java và PHP potx
Hình 7. Truy cập dữ liệu trong PHP (Trang 67)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w