แสดงบทความที่มีป้ายกำกับ php framework แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ php framework แสดงบทความทั้งหมด

วันอาทิตย์ที่ 19 ธันวาคม พ.ศ. 2553

layout-views or master-contents page

master-page.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<link type="text/css" rel="stylesheet" href="style.css"/>
<title>{$title}</title>
{$head}
</head>

<body>
<h1>Welcome to my site</h1>
<table width="800" border="2"><tr><td bgcolor="#FFCC00">
{$content1}
</td><td bgcolor="#FFFFCC">
{$content2}
</td></tr>
</table>
<hr/>
easy master page by num |
<a href="normal-page.php">page1</a> |
<a href="normal-page2.php">page2</a>
</body>
</html>


normal-page.php

<?php require 'util.php'; $MasterPage = 'master-page.php';?>
<?php if (0):?><meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<link type="text/css" rel="stylesheet" href="style.css"/><?php endif;?>

<?php sb('title'); echo 'test-title'; eb();?>

<?php sb('head');?>
<script type="text/javascript">
window.onload = function(){
document.getElementById('test').innerHTML = 'javascript text';
}
</script>
<?php eb();?>

<?php sb('content1');?>
<b>hello world</b>
<div id="test"></div>
<?php eb();?>

<?php sb('content2');?>
lksldfjksjdklfjk lsjdlkfj s dfjsldkjfks jdklfjkljsdl fklsjdklfjlksd
<?php eb();?>


<?php render();?>


normal-page2.php

<?php require 'util.php'; $MasterPage = 'master-page.php';?>
<?php if (0):?><meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<link type="text/css" rel="stylesheet" href="style.css"/><?php endif;?>

<?php sb('title'); echo 'สวัสดีครับ'; eb();?>

<?php sb('head');?>
<?php eb();?>


<?php sb('content1');?>
page2
<?php eb();?>

<?php sb('content2');?>
this is page 2.
<?php eb();?>



<?php render();?>


util.php

<?php

$_vars = array();
function sb($name){
static $sName;
if (empty($name)) return $sName;
$sName = $name;
ob_start();
}
function eb(){
global $_vars;
$name = sb(0);
$_vars[$name] = ob_get_clean();
}
function render(){
global $_vars;
ob_start();
require ($GLOBALS['MasterPage']);
$page = ob_get_clean();
foreach($_vars as $name=>$var)
$page = str_replace('{$'.$name.'}',$var,$page);
echo $page;
}

?>



/* CSS Document */

*{margin:0;padding:0;}
body {background-color:#ccc;}

วันอังคารที่ 2 พฤศจิกายน พ.ศ. 2553

yii php framework

ข้อดีของ yii

  1. orm ดีมาก สนับสนุนการ join ที่ซับซ้อนโดยไม่ต้องเขียน query
  2. การประมวลผลเร็วมากกว่า php framework เกือบทุกเจ้า
  3. มีระบบ gii ช่วยสร้าง class และ view ผ่านทางหน้าเว็บไซท์
  4. เอกสารที่ดี อ่านเข้าใจได้ง่าย
  5. มีเว็บบอร์ดที่ตอบคำถามไวมากโดยผู้ผลิต framework และผู้เชี่ยวชาญการใช้งาน


เฟรมเวิร์คที่ผมเคยใช้ cakephp, codeigniter, zoop, zend, yii ผมว่า yii ออกแบบโครงสร้าง mvc มาดีที่สุด (เฉพาะ mvc แต่ component ของ framework อื่นบางตัวออกแบบดีกว่า yii)

http://www.yiiframework.com/
ทำความรู้จักกับ yii

ประโยชน์ของ framework
ประโยชน์หลักของ framework เลยก็คือจะมีการวางแบบแผนและระบบต่างๆ ที่ช่วยให้เขียนโค้ดเป็นระเบียบขึ้น การใช้ framework มีประโยชน์อย่างมากถ้าเขียนโปรแกรมเดียวกันพร้อมกันหลายๆ คน เพราะโครงสร้างโค้ดและ flow ของโปรแกรมจะเป็นไปในแนวเดียวกันหมด ทำให้สามารถเขียนและแก้ไขโปรแกรมที่คนอื่นเขียนได้ง่ายขึ้นมากๆๆๆๆๆ ครับ

ประโยชน์ทางอ้อมก็คือ เพราะว่า framework ถูกเขียนโดยผู้ที่เขียนเว็บที่มีประสบการณ์มากและเก่งมากๆ การได้เรียนรู้จักคำสั่งภายใน framework จะทำให้ได้แนวคิดที่จะช่วยในการเขียนเว็บในหลายๆ อย่าง อย่างเช่น การเขียนคำสั่งที่จะนำกลับมาใช้ใหม่ได้ ช่วยให้ได้รู้จักการวางระเบียบ function และ class ซึ่งจะมีประโยชน์มากต่อการเขียนเว็บอย่างมากครับ

framework คือโครงสร้างและคำสั่งในการพัฒนาระบบซึ่งผู้มีประสบการณ์ได้วางระบบไว้ให้ ซึ่งจะมีประโยชน์ในการพัฒนาระบบในระยะยาวเพราะว่าโค้ดมีความเป็นระเบียบอยู่ แล้ว ทำให้ไม่ต้องกังวลว่าในอนาคต โครงสร้างที่เราวางไว้อาจจะไม่สามารถตอบสนองกับระบบที่จะพัฒนาเพิ่มเติมเข้า ไปในภายหลัง หรือเมื่อพบจุดที่เป็นปัญหาต้องตามไปแก้โค้ดในทุกๆ หน้า ซึ่งเป็นเรื่องที่น่ากลัวมากครับ.. แต่ถ้าใช้ framework ที่ออกแบบไว้ดี จะสามารถแก้ปัญหาได้โดยการแก้เพียงไม่กี่จุด

แต่ framework ก็มีข้อเสียเหมือนกันอย่างเช่น cakephp มีข้อเสียอย่างหนึ่งก็คือ
ถ้าเราเขียน class เป็น component, behavior, helper นั้น จะนำกลับมาใช้ใหม่ได้ก็กับเฉพาะโปรแกรม ที่สร้างด้วย cakephp เท่านั้น ไม่สามารถนำไปใช้ใน application ทั่วๆ ไปได้

สรุปได้ว่าถ้าเราวางระบบในการพัฒนาซึ่งมีการจัดระเบียบไว้ดีแล้ว และนำไปใช้ในการสร้างโปรแกรมต่างๆ ได้อย่างไม่มีปัญหา ก็ไม่จำเป็นต้องใช้ framework ครับ (แต่การจัดระเบียบเว็บก็เหมือนเราสร้าง framework ของตัวเองขึ้นมาใช้เหมือนกันอะ แหะๆ)

สรุปแล้ว ในที่สุดเราก็ต้องใช้ framework ไม่ว่าจะเป็นของคนอื่นหรือของตัวเองครับ ..แป่ววว