<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>jQuery, Ajax, PHP, JSON, XML, Web Technologies &#187; Object Oriented</title>
	<atom:link href="http://blog.chonla.com/category/object-oriented/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.chonla.com</link>
	<description>คุยกันเรื่อง jQuery, Ajax, PHP, JSON, XML และ Web Technologies เป็นภาษาไทยกันดีกว่า</description>
	<lastBuildDate>Wed, 08 Sep 2010 19:28:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Method Chaining ใน PHP ทำเองก็ได้ง่ายจัง</title>
		<link>http://blog.chonla.com/2009/09/method-chaining-%e0%b9%83%e0%b8%99-php-%e0%b8%97%e0%b8%b3%e0%b9%80%e0%b8%ad%e0%b8%87%e0%b8%81%e0%b9%87%e0%b9%84%e0%b8%94%e0%b9%89%e0%b8%87%e0%b9%88%e0%b8%b2%e0%b8%a2%e0%b8%88%e0%b8%b1%e0%b8%87/</link>
		<comments>http://blog.chonla.com/2009/09/method-chaining-%e0%b9%83%e0%b8%99-php-%e0%b8%97%e0%b8%b3%e0%b9%80%e0%b8%ad%e0%b8%87%e0%b8%81%e0%b9%87%e0%b9%84%e0%b8%94%e0%b9%89%e0%b8%87%e0%b9%88%e0%b8%b2%e0%b8%a2%e0%b8%88%e0%b8%b1%e0%b8%87/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 19:03:09 +0000</pubDate>
		<dc:creator>chonla</dc:creator>
				<category><![CDATA[Object Oriented]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Chainability]]></category>

		<guid isPermaLink="false">http://blog.chonla.com/?p=228</guid>
		<description><![CDATA[บทความนี้ได้แรงบันดาลใจมาจาก chainability ของ jQuery และ query builder ของ kohana (จริง ๆ ผมเข้าใจว่า query builder มีอยู่ใน php framework ตัวอื่นด้วย แต่พอดีท่านรุ่งจากบ้าน PHP.DeeServer.net ซึ่งแนะนำให้ผมรู้จักกับ kohana เค้าแนะนำตัวที่อยู่ใน kohana มาครับ) ไอเดียหลัก ๆ ของการทำ chaining ก็คือ การทำให้มันสามารถเรียกต่อกันได้เป็นทอด ๆ นั่นเอง ยกตัวอย่างใน jQuery ซึ่งมีคุณสมบัติที่เรียกว่า chainability อยู่ ทำให้เราสามารถเรียกคำสั่งได้แบบนี้ $("#submenu").addClass("whitemenu").show("slow"); จะเห็นได้ว่า เราสามารถเรียก .show ต่อเนื่องได้เลย นี่เองที่ทำให้เกิดการเรียกอย่างต่อเนื่อง หรือ การทำ Method chaining นั่นเอง ใน PHP เราสามารถทำให้ object มีคุณสมบัติเดียวกันนี้ได้เช่นกัน [...]]]></description>
			<content:encoded><![CDATA[<p>บทความนี้ได้แรงบันดาลใจมาจาก <a href="http://blog.chonla.com/2008/11/เมื่อฟ้าส่ง-chainability-มาให้กับ-jquery/" target="_blank" title="เมื่อฟ้าส่ง Chainability มาให้กับ jQuery">chainability</a> ของ <a href="http://www.jquery.com" target="_blank" title="jQuery - The Write Less, Do More, JavaScript Library">jQuery</a> และ query builder ของ <a href="http://www.kohanaphp.com/" target="_blank" title="Kohana - The swift PHP Framework">kohana</a> (จริง ๆ ผมเข้าใจว่า query builder มีอยู่ใน php framework ตัวอื่นด้วย แต่พอดีท่านรุ่งจากบ้าน <a href="http://php.deeserver.net" target="_blank" title="PHP.DeeServer.Net">PHP.DeeServer.net</a> ซึ่งแนะนำให้ผมรู้จักกับ kohana เค้าแนะนำตัวที่อยู่ใน kohana มาครับ)</p>
<p>ไอเดียหลัก ๆ ของการทำ chaining ก็คือ การทำให้มันสามารถเรียกต่อกันได้เป็นทอด ๆ นั่นเอง ยกตัวอย่างใน jQuery ซึ่งมีคุณสมบัติที่เรียกว่า chainability อยู่ ทำให้เราสามารถเรียกคำสั่งได้แบบนี้</p>
<pre name="code" class="js">
$("#submenu").addClass("whitemenu").show("slow");
</pre>
<p>จะเห็นได้ว่า เราสามารถเรียก .show ต่อเนื่องได้เลย นี่เองที่ทำให้เกิดการเรียกอย่างต่อเนื่อง หรือ การทำ Method chaining นั่นเอง<br />
<span id="more-228"></span></p>
<p>ใน PHP เราสามารถทำให้ object มีคุณสมบัติเดียวกันนี้ได้เช่นกัน เพียงแต่น่าเสียดายที่คุณสมบัตินี้ มีอยู่ใน PHP ตั้งแต่เวอร์ชั่น 5 ขึ้นไปเท่านั้น สำหรับคนที่ยังใช้ PHP4 อยู่ ผมต้องขอแสดงความเสียใจด้วยครับ ฮ่า ๆ และคาดว่าเหตุนี้เองที่ทำให้ kohana สามารถใช้งานได้กับ PHP5 ขึ้นไปเท่านั้น</p>
<p>หลักการง่าย ๆ ที่ทำให้เราสามารถทำ Method chaining ได้ก็คือ การเขียน class และทำการคืนค่าของ object มันเองกลับออกมาหลังจากที่จบ method ทำนองเดียวกับใน jQuery ตอนที่เขียน plugin </p>
<p>ตอนจบ เราก็จะทำการ return jQuery object กลับออกมาให้เช่นเดียวกัน</p>
<p>ลองมาดูตัวอย่างใน PHP กันดีกว่าครับ</p>
<pre name="code" class="js">
// php5 only
class Database
{
	private $link;

	private $table;
	private $field;
	private $condition;
	private $order;
	private $result;

	// connection functions
	function __construct($config)
	{
		$this->flush();
		$this->link = null;
		$this->connect($config["hostname"],
				$config["username"],
				$config["password"],
				$config["database"]);
	}

	function __destruct()
	{
		$this->disconnect();
	}

	function connect($host = "",
				$user = "",
				$password = "",
				$db = "")
	{
		if ($this->link !== null)
			$this->disconnect();

		$this->link = mysql_connect($host, $user, $password);

		if ($this->link === FALSE)
		{
			echo $this->err();
		}
		else
		{
			if ($db !== "")
			{
				return $this->db($db);
			}
		}
		return $this;
	}

	function disconnect()
	{	// break chain
		if ($this->link !== null)
			mysql_close($this->link);
		$this->link = null;
	}

	function db($db)
	{
		if (mysql_select_db($db, $this->link) === FALSE)
			echo $this->err();
		return $this;
	}

	function errno()
	{
		return mysql_errno($this->link);
	}

	function ok()
	{
		return ($this->errno() == 0);
	}

	function err()
	{	// break chain
		return mysql_error($this->link);
	}

	function execute($sql)
	{
		$this->result = mysql_query($sql, $this->link);
		return $this;
	}

	function records()
	{
		$result = array();
		if ($this->result !== FALSE)
		{
			while (($row = mysql_fetch_assoc($this->result)) !== FALSE)
			{
				$result[] = $row;
			}
		}
		return $result;
	}

	function flush()
	{
		$this->table = "";
		$this->field = "";
		$this->condition = "";
		$this->order = "";
		$this->result = null;
		return $this;
	}

	function safe($value)
	{
		if (!get_magic_quotes_gpc())
		{
			$value = addslashes($value);
		}
		return "'$value'";
	}

	function table($table)
	{
		$this->table = $table;
		return $this;
	}

	function field($field)
	{
		$this->field = $field;
		return $this;
	}

	function condition($condition)
	{
		if (is_array($condition))
		{
			$cond = array();
			foreach ($condition as $f => $v)
			{
				$cond[] = "($f = " . $this->safe($v) . ")";
			}
			$condition = implode(" AND ", $cond);
		}
		$this->condition = $condition;
		return $this;
	}

	function top($num = 1)
	{
		$field = $this->field;
		if ($field == "") $field = "*";
		$sql = "SELECT {$field} FROM {$this->table}";
		if ($this->condition !== "")
			$sql .= " WHERE {$this->condition}";
		if ($this->order !== "")
			$sql .= " ORDER BY {$this->order}";
		$sql .= " LIMIT 0, {$num}";
		return $this->execute($sql)->records();
	}

	function all()
	{
		$field = $this->field;
		if ($field == "") $field = "*";
		$sql = "SELECT {$field} FROM {$this->table}";
		if ($this->condition !== "")
			$sql .= " WHERE {$this->condition}";
		if ($this->order !== "")
			$sql .= " ORDER BY {$this->order}";
		return $this->execute($sql)->records();
	}

	function order($order)
	{
		$this->order = $order;
		return $this;
	}
}
</pre>
<p>code ด้านบนนี้ เป็น code ที่ผมทดสอบ โดยทำเป็นไอเดียเริ่มต้นง่าย ๆ สำหรับการทำ query builder จะเห็นได้ว่า หลาย ๆ method จะมีการ return ตัว object มันเอง ($this) ไอเดียหลักในการกำหนดว่า method ไหนที่ผม return หรือไม่ return $this ก็คือ มีความจำเป็นในการเรียก method ต่อจากนี้หรือไม่นั่นเอง</p>
<p>การใช้งานก็ไม่ได้ยุ่งยากอะไร</p>
<pre name="code" class="js">
$dbconf = array(
	"hostname" => "localhost",
	"username" => "root",
	"password" => "123456",
	"database" => "test"
);
$db = new Database($dbconf);
$rows = $db->table("products")
		->field("product_id, product_name")
		->condition(array(
				"product_group"=>"tyre",
				"product_model"=>"Eagle"))
		->top();
print_r($rows);
</pre>
<p>จากตัวอย่างด้านบน เป็นการ select หา product จาก table products โดยกำหนด criteria ในการค้นหาเป็น product_group = &#8216;tyre&#8217; และ product_model = &#8216;Eagle&#8217; โดยจะเลือกเอาเฉพาะ record แรกสุดเท่านั้น</p>
<p>เห็นมั๊ยครับ หลักการง่าย ๆ แค่ return $this เองครับ ที่สำคัญ อย่าลืมนะครับ PHP5 ขึ้นไปนะครับ</p>
<p>ขอให้สนุกกับการเขียนโปรแกรมครับ</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.chonla.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.chonla.com/2009/09/method-chaining-%e0%b9%83%e0%b8%99-php-%e0%b8%97%e0%b8%b3%e0%b9%80%e0%b8%ad%e0%b8%87%e0%b8%81%e0%b9%87%e0%b9%84%e0%b8%94%e0%b9%89%e0%b8%87%e0%b9%88%e0%b8%b2%e0%b8%a2%e0%b8%88%e0%b8%b1%e0%b8%87/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>MVC Design Pattern (MVC ไม่ได้ย่อจากการ์ตูน Mavel Comic นะเฟ้ย)</title>
		<link>http://blog.chonla.com/2009/01/mvc-design-pattern-%e0%b9%84%e0%b8%a1%e0%b9%88%e0%b9%83%e0%b8%8a%e0%b9%88%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%8c%e0%b8%95%e0%b8%b9%e0%b8%99-mavel-comic-%e0%b8%99%e0%b8%b0%e0%b9%80%e0%b8%9f%e0%b9%89/</link>
		<comments>http://blog.chonla.com/2009/01/mvc-design-pattern-%e0%b9%84%e0%b8%a1%e0%b9%88%e0%b9%83%e0%b8%8a%e0%b9%88%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%8c%e0%b8%95%e0%b8%b9%e0%b8%99-mavel-comic-%e0%b8%99%e0%b8%b0%e0%b9%80%e0%b8%9f%e0%b9%89/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 16:10:41 +0000</pubDate>
		<dc:creator>chonla</dc:creator>
				<category><![CDATA[MVC]]></category>
		<category><![CDATA[Object Oriented]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Design Pattern]]></category>

		<guid isPermaLink="false">http://blog.chonla.com/?p=142</guid>
		<description><![CDATA[MVC ที่ผมจะพูดถึงนี้ ย่อมาจาก Model-View-Controller ครับ เป็นรูปแบบการออกแบบระบบ โดยหลักการคือ จะแบ่งระบบที่เราออกแบบเป็น 3 ส่วนประกอบหลัก ๆ คือ Model, View และ Controller โดยที่แต่ละส่วนจะมีความสำคัญดังนี้ Model  จะหมายถึง Object ที่แทนข้อมูล หรือกิจกรรมต่าง ๆ ในระบบ เช่น ตารางใน database หรือจะเป็นโพรเซสงานหนึ่ง ๆ ก็ได้ครับ เราจะไม่นับข้อมูลดิบในระบบเป็น Model เพราะข้อมูลเหล่านั้นจะถูกครอบ (Encapsulated) ด้วย Model นั่นเองครับ ถ้าใครเคยเรียน Object Oriented มาน่าจะพอเข้าใจได้ดีนะครับ View จะหมายถึงการแสดงผลข้อมูลต่าง ๆ ที่ได้รับมาจาก Model ครับ ไม่ว่าจะอยู่ในรูปแบบของรูปภาพกราฟิคต่าง ๆ หรือข้อความก็ตาม นอกจากนี้เรายังสามารถแสดงผลที่ได้รับจาก Model หนึ่ง ๆ ได้หลายรูปแบบอีกด้วย Controller จะหมายถึง [...]]]></description>
			<content:encoded><![CDATA[<p>MVC ที่ผมจะพูดถึงนี้ ย่อมาจาก Model-View-Controller ครับ เป็นรูปแบบการออกแบบระบบ โดยหลักการคือ จะแบ่งระบบที่เราออกแบบเป็น 3 ส่วนประกอบหลัก ๆ คือ Model, View และ Controller โดยที่แต่ละส่วนจะมีความสำคัญดังนี้</p>
<p><span id="more-142"></span></p>
<ol>
<li>Model  จะหมายถึง Object ที่แทนข้อมูล หรือกิจกรรมต่าง ๆ ในระบบ เช่น ตารางใน database หรือจะเป็นโพรเซสงานหนึ่ง ๆ ก็ได้ครับ เราจะไม่นับข้อมูลดิบในระบบเป็น Model เพราะข้อมูลเหล่านั้นจะถูกครอบ (Encapsulated) ด้วย Model นั่นเองครับ ถ้าใครเคยเรียน Object Oriented มาน่าจะพอเข้าใจได้ดีนะครับ</li>
<li>View จะหมายถึงการแสดงผลข้อมูลต่าง ๆ ที่ได้รับมาจาก Model ครับ ไม่ว่าจะอยู่ในรูปแบบของรูปภาพกราฟิคต่าง ๆ หรือข้อความก็ตาม นอกจากนี้เรายังสามารถแสดงผลที่ได้รับจาก Model หนึ่ง ๆ ได้หลายรูปแบบอีกด้วย</li>
<li>Controller จะหมายถึง กิจกรรม การกระทำ หรือการตอบสนองต่อเหตุการณ์ต่าง ๆ ที่เกิดขึ้น โดยอาจจะมีผลทำให้ข้อมูลใน Model เปลี่ยนสถานะไปได้ครับ</li>
</ol>
<div id="attachment_144" class="wp-caption aligncenter" style="width: 294px"><a href="http://blog.chonla.com/wp-content/uploads/2009/01/model-view-controller-01.png"><img class="size-full wp-image-144" title="model-view-controller-01" src="http://blog.chonla.com/wp-content/uploads/2009/01/model-view-controller-01.png" alt="MVC diagram" width="284" height="340" /></a><p class="wp-caption-text">MVC diagram</p></div>
<p>รูปภาพด้านบนจะแสดงให้เห็นถึงความสัมพันธ์ระหว่าง Model, View และ Controller ในรูปแบบ Diagram (ขอบคุณภาพจาก <a href="http://www.tonymarston.net/php-mysql/model-view-controller.html">http://www.tonymarston.net/php-mysql/model-view-controller.html</a> ด้วยครับ)</p>
<p><strong>ข้อดีของการออกแบบระบบด้วย MVC Pattern</strong></p>
<ul>
<li><strong>การออกแบบที่ชัดเจน</strong> เมื่อเรากำหนดให้ Model อยู่ในรูปแบบของ Object ในระบบ ส่งผลให้เราสามารถมองภาพระบบโดยรวมได้ชัดเจนมากขึ้นว่า Model ใด สัมพันธ์กับ Model ใดในลักษณะใด รวมไปถึงคำสั่งต่าง ๆ ใน Object ที่เราสามารถเรียกใช้งานได้ จะทำให้เรามองเห็นภาพของพฤติกรรมของ Model นั้น ๆ อีกด้วย</li>
<li><strong>การปรับปรุง/แก้ไขได้โดยง่าย</strong> เมื่อเราออกแบบตาม MVC Pattern ทำให้เราสามารถปรับปรุง แก้ไขส่วนใด ๆ ได้อย่างง่ายดายโดยที่ไม่กระทบกับส่วนที่เหลือ เนื่องจากทั้ง 3 ส่วนต่างอิสระต่อกัน เพียงเรากำหนด Interface ของแต่ละส่วนให้ชัดเจน และทำการพัฒนา แก้ไข หรือปรับปรุงภายใต้ Interface ที่กำหนดเท่านั้น</li>
<li><strong>View ที่หลากหลาย</strong> หลังจากที่เราแยก View กับ Model ออกจากกัน ทำให้เราสามารถออกแบบ View ได้หลายรูปแบบ เปรียบเทียบได้กับ Model หนึ่งที่คอย Generate XML Data รายงานดัชนีหุ้น และมี View ที่นำข้อมูล XML ไปใช้สร้างเป็นกราฟ หรือตารางนั้นเอง</li>
<li><strong>Maintain ระบบได้ง่าย</strong> เพราะเราได้ออกแบบระบบที่มีโครงสร้างชัดเจน ทำให้ยืดหยุ่นต่อการเพิ่มเติม รวมไปถึงการนำส่วนใด ๆ กลับมาใช้ซ้ำได้อีกด้วย (Reusability)</li>
</ul>
<p><strong>แล้วข้อเสียล่ะ?</strong></p>
<p>เมื่อพูดถึงข้อดีแล้ว ต่อไปเราก็มาพูดถึงข้อเสียกันบ้าง ข้อเสียหนึ่งที่เห็นได้ชัดเลยคือ มันซับซ้อนเกินไป ถ้าเราจะนำมาใช้กับระบบขนาดเล็ก เทียบง่าย ๆ มันก็คงไม่ต่างจากภาษิตที่ว่า ขี่ช้างจับตั๊กแตน นั่นเองครับ</p>
<p><strong>นอกจากนี้แล้ว</strong></p>
<p>นอกจากนี้แล้ว ทางฝั่งภาษา PHP เองก็มี Framework ที่สนับสนุนการพัฒนาระบบที่มีพื้นฐาน MVC design pattern อยู่หลายตัวครับ ผมขออนุญาตลอกมาจาก Wiki ให้ดูกัน (<a href="http://en.wikipedia.org/wiki/Model-view-controller#PHP">http://en.wikipedia.org/wiki/Model-view-controller#PHP)</a></p>
<ul>
<li></li>
<li>Akelos PHP Framework &#8211; a Ruby on Rails port to PHP4/5.</li>
<li>CakePHP &#8211; webapplication framework modeled after the concepts of Ruby on Rails.</li>
<li>CodeIgniter &#8211; A PHP MVC framework.</li>
<li>FUSE &#8211; A powerful but easy-to-use PHP 5 Framework for MVC development modeled after the concepts of Ruby on Rails.</li>
<li>Jelix (web framework)</li>
<li>Jaws &#8211; is a Framework and Content Management System for building dynamic web sites.</li>
<li>Joomla v1.5.x &#8211; is an open source Content Management System that employs the MVC model for its extensions, called components and modules.</li>
<li>Kohana &#8211; is an open source MVC oriented framework, originally forked from CodeIgniter.</li>
<li>LISA MVC &#8211; is an open source object oriented web application framework.</li>
<li>Odin Assemble &#8211; Small footprint PHP based MVC Framework.</li>
<li>Orinoco Framework &#8211; is a full-stack yet lightweight framework written in PHP5. It implements the Model 2 design paradigm.</li>
<li>PHPonTrax &#8211; A PHP 5 MVC framework modeled after Ruby on Rails.</li>
<li>phpXCore &#8211; A MVC design pattern based PHP content management framework compatible with PHP4 and PHP5.</li>
<li>Prado &#8211; A PHP 5 MVC framework modeled after ASP.NET web forms.</li>
<li>Qcodo &#8211; is an open-source PHP 5 web application framework</li>
<li>SilverStripe &#8211; contains a fully fledged PHP 5.2 ORM/MVC Framework focused on building websites. Much like Ruby on Rails.</li>
<li>Solar</li>
<li>Switch board (framework) &#8211; with Routing PHP 5 MVC Framework with Routing.</li>
<li>Symfony Framework- PHP 5 MVC Framework modeled after the concepts of Ruby on Rails.</li>
<li>Zend Framework &#8211; A PHP 5-based MVC framework modeled after the concepts of Ruby on Rails.</li>
<li>ZNF &#8211; PHP5 MVC framework for enterprise web applications</li>
<li>Zoop &#8211; Framework A Mature PHP 4/5 MVC framework.</li>
<li>PureMVC &#8211; Framework for PHP</li>
</ul>
<p><strong>เอกสารอ้างอิง</strong> </p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Model-view-controller">http://en.wikipedia.org/wiki/Model-view-controller</a></li>
<li><a href="http://www.tonymarston.net/php-mysql/model-view-controller.html">http://www.tonymarston.net/php-mysql/model-view-controller.html</a></li>
<li><a href="http://cristobal.baray.com/indiana/projects/mvc.html">http://cristobal.baray.com/indiana/projects/mvc.html</a></li>
<li><a href="http://aspalliance.com/1562_Implementing_the_MVC_Design_Pattern_in_ASPNET.1">http://aspalliance.com/1562_Implementing_the_MVC_Design_Pattern_in_ASPNET.1</a></li>
</ul>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.chonla.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.chonla.com/2009/01/mvc-design-pattern-%e0%b9%84%e0%b8%a1%e0%b9%88%e0%b9%83%e0%b8%8a%e0%b9%88%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%8c%e0%b8%95%e0%b8%b9%e0%b8%99-mavel-comic-%e0%b8%99%e0%b8%b0%e0%b9%80%e0%b8%9f%e0%b9%89/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>
