วันอังคารที่ 7 ธันวาคม พ.ศ. 2553

รายชื่อ Zend Framework Components

Zend_Acl


เป็น access controll list ( ACL ) แบบขนาดย่อมแต่มีความยืดหยุ่นสูง สำหรับการกำหนดสิทธิ.
โดยทั่วไป โปรแกรมจะใช้ประโยชน์จาก ACL เพื่อป้องกัน protected objects จาก requesting objects.
ในเอกสารของ ZF จะให้
resource - แทน object ที่จะถูกควบคุมการเข้าถึง
role - จะหมายถึง object ซึ่งจะร้องขอการเข้าถึง resource

Zend_Application


ช่วยให้บรรจุ configuration เริ่มต้นของโปรแกรมได้สะดวก จัดหาทรัพยากรที่นำกลับมาใช้ได้ใหม่
คลาสที่เรียบง่ายและมีความเป็นโมดูล และช่วยในการตรวจสอบ dependency. มันเอาใจใส่กับการสร้าง
environment ของ PHP และตั้งค่าช่วยในการทำให้โปรแกรม autoloding โดย default

Zend_Amf


ช่วยในการเชื่อมต่อกับ Adobe's Action Message Format (AMF)
, เพื่อให้ Flash Player ติดต่อกับ PHP ได้.
มันจัดสรรส่วนการทำงานส่วน gateway server สำหรับควบคุมการ request จาก Flash Player ไปยัง server
และเทียบเคียง request เหล่านั้นไปยัง object และ method ของ class และ callback function ที่ผู้เขียนโปรแกรมสร้างขึ้นมาเอง
การใช้งาน AMFPHP กับ ActionScript 2.0

AMF3 sepecification มีให้อ่านได้ฟรี, ซึ่งช่วยอธิบายให้ทราบว่ามีชนิดของ message อะไรซึ่งสามารถจะส่งไปมาระหว่าง
Flash Player และ server

Zend_Captcha


CAPTCHA เป็นคำย่อของ "Completely Automated Public Turing test to tell Computers and Humans Apart";
มันถูกใช้เป็นเป็นตัวตรวจสอบความสิทธิรูปแบบหนึ่ง เพื่อให้แน่ใจว่าผู้ที่ป้อนข้อมูลเข้ามาแต่ละครั้งเป็นมนุษย์ไม่ใช้โปรแกรมส่งข้อมูลอัตโนมัติ.
โดยทั่วไป, captcha จะถูกใช้พร้อม form กรอกข้อมูลซึ่งอนุญาตให้ใช้งานโดยไม่จำเป็นต้อง login เข้าสู่ระบบสมาชิก แต่คุณต้องการป้องการการส่งข้อมูลจาก spam

โค้ดตัวอย่าง captcha ที่เป็น text ธรรมดาๆ ครับ :)
จริงๆ ควรจะใช้ร่วมกับ Zend_Form นะครับ แต่เนื่องจากผมอยากให้มันดูธรรมดาๆ อันไหนเขียนแบบธรรมดาๆ ได้ก็เขียนแบบธรรมดาๆ ไปเลย

<?php
ini_set('include_path','.'.PATH_SEPARATOR.'c:\mydoc\testweb\zend\library');
require_once 'Zend/View.php';
require_once 'Zend/Captcha/Figlet.php';
require_once 'Zend/Session.php';
$view = new Zend_View();
$captcha = new Zend_Captcha_Figlet(array(
'name' => 'code',
'wordLen' => 6,
'timeout' => 30000
));
if (isset($_POST['captcha'])){
if ($captcha->isValid($_POST['captcha'])) {
echo 'correct!';
}else{
$msg=$captcha->getMessages();
echo current($msg);
}
}
$id = $captcha->generate();
echo '<span style="font-family:fixedsys">';
echo $captcha->render($view);
echo '</span>';
?>
<form action="?" method="post">
<input type="hidden" name="captcha[id]" value="<?php echo $id;?>" id="captcha-id" />
<input type="text" name="captcha[input]" id="captcha-input" value="" />
<input type="submit" value="test">
</form>


Zend_Pdf



<?php
header("Content-type: application/pdf");
ini_set('include_path','.'.PATH_SEPARATOR.'c:\mydoc\testweb\zend\library');
require_once 'Zend/Pdf.php';

$pdf1 = new Zend_Pdf();
$pdfPage = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
$pdfPage->setFont(Zend_Pdf_Font::fontWithPath('2005_iannnnnMTV.ttf'), 36);
$pdfPage->drawText('สวัสดีครับท่าน', 50, 842-50, 'UTF-8');
$pdf1->pages[]=$pdfPage;
echo $pdf1->render();


Zend_Soap_Client


อันนี้เป็นตัวอย่างการใช้งาน Zend_Soap_Client คนที่เคยใช้ dotnet xml จะทราบว่า xml ของ dotnet มันไม่ค่อย standard เท่าไหร่
คือ ' หรือ " มันจะไม่ถูกแปลงข้อมูลไปเป็น &quot; อะไรพวกเนี้ยลืมแระ และคิดว่า soap ของ dotnet ก็คงจะไม่ standard อีกเช่นเคย
Zend Framework ก็เลยสร้าง class Zend_Soap_Client_DotNet เสริมขึ้นมาจาก Zend_Soap_Client ธรรมดาเพื่อจัดการ xml format ของ dotnet โดยเฉพาะ ครับ :)
โปรแกรมนี้เรียกใช้ webservice จากเว็บ http://www.webservicex.com ครับ โดยอันนี้จะเป็น service แปลงอัตราแลกเปลี่ยนค่าเงินบาทกับเงินยูเอสดอลล่าครับ

<?php
ini_set('include_path','.'.PATH_SEPARATOR.'c:\mydoc\testweb\zend\library');
$wsdl = 'http://www.webservicex.com/CurrencyConvertor.asmx?wsdl';
require_once 'Zend/Soap/Client/DotNet.php';
$client = new Zend_Soap_Client_DotNet($wsdl);
$result = $client->__call('ConversionRate',array(
'FromCurrency'=>'USD',
'ToCurrency'=>'THB'
));
var_dump($result);
?>

ไม่มีความคิดเห็น:

แสดงความคิดเห็น