ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => หัวข้อเริ่มโดย: djoser ใน 26 เมษายน 2011, 10:49:02

ชื่อเรื่อง: PHP performance เขียนยังไง ดีกว่ากันคะ
โพสต์โดย: djoser ใน 26 เมษายน 2011, 10:49:02
หากเราเขียน PHP โดยแต่ละแนวดังนี้

1. เขียน มี HTML ทั่วๆ ไป พอต้องการค่าจาก PHP ก็ echo มา ฉะนั้น Code จะสลับกันไปสลับกันมาระหว่าง html และ php แต่ในความรู้สึกคือ ชอบแนวนี้ตรงที่ถ้า php return ค่าว่างมา หน้าเว็บเราก็ยังคง แสดงข้อมูลหรือต่างๆ ได้ตาม html ที่ครอบไว้

2. เขียนแนว PHP programming เต็มๆ คือ html ทั้งหมด ใส่ไว้ใน ค่า $html แล้วค่อย echo ทีเดียว เมื่อ query ค่าต่างๆ มารวมเป็นน่าเว็บได้แล้ว


แนวทางไหน มันจะทำให้การรัน script ดูมีประสิทธิภาพมากกว่ากันคะ อ่านการ optimize tuning แล้วก็ว่า การ echo ทีเดียวดีกว่า แต่การที่เราเขียน html ทั้งหน้า แล้วใช้ php เฉพาะจุดที่ต้องการ มันก็ดี

รบกวนแนะนำแนวทางด้วยค่ะ
ขอบคุณค่ะ :)
ชื่อเรื่อง: Re: PHP performance เขียนยังไง ดีกว่ากันคะ
โพสต์โดย: gilbert ใน 26 เมษายน 2011, 11:00:51
คือถ้าเป็นภาษา jsp จะมีแนวทางการเขียนแบบ MVC  คือ
1. Model คือ ส่วนประมวณผล พวกคลาสต่างๆ
2. View คือ ส่วนแสดงผล จะเป็นโค้ HTML หรือ JSTL
3. Controllor คือ ส่วนที่รับ action จากหน้า HTML ก็จะเป็น Java Servlet

แต่ถ้าเป็นภาษา PHP ผมจะใช้ Java Libary พวก jquery เข้ามาช่วยกับ JSON
1. หน้า HTML ใช้ jquey ส่ง request
2. หน้า PHP รับค่า request จาก HTML และ return ผล
3. หน้า PHP Class เป็นส่วนที่ถูกเรียกใช้ในหน้า PHP


ชื่อเรื่อง: Re: PHP performance เขียนยังไง ดีกว่ากันคะ
โพสต์โดย: djoser ใน 26 เมษายน 2011, 11:33:51
style ของคุณ gilbert เป็นอีก idea ทีเดียว ขอถามเพิ่มเติมนิดค่ะ

ถ้าเรา load data โดย jquery  นี้ มันจะมีผลเรื่อง SEO ไหมคะ
คือไม่รู้เข้าใจถูกไหมว่า ถ้าเรา load data ด้วย jquery คือ มันจะส่งข้อมูล html มาที่หลัง แล้วมันจะไม่ show ใน code html ทำให้ เวลา bot เข้ามาเก็บข้อมูล มันจะไม่เห็น html ตรงนั้น (หรือเปล่าคะ)

ขอบคุณค่ะ
ชื่อเรื่อง: Re: PHP performance เขียนยังไง ดีกว่ากันคะ
โพสต์โดย: gilbert ใน 26 เมษายน 2011, 11:57:46
อ้างถึงจาก: djoser ใน 26 เมษายน 2011, 11:33:51
style ของคุณ gilbert เป็นอีก idea ทีเดียว ขอถามเพิ่มเติมนิดค่ะ

ถ้าเรา load data โดย jquery  นี้ มันจะมีผลเรื่อง SEO ไหมคะ
คือไม่รู้เข้าใจถูกไหมว่า ถ้าเรา load data ด้วย jquery คือ มันจะส่งข้อมูล html มาที่หลัง แล้วมันจะไม่ show ใน code html ทำให้ เวลา bot เข้ามาเก็บข้อมูล มันจะไม่เห็น html ตรงนั้น (หรือเปล่าคะ)

ขอบคุณค่ะ

ถ้าคำนึงเรื่อง SEO มีผลแน่นอนครับ
ชื่อเรื่อง: Re: PHP performance เขียนยังไง ดีกว่ากันคะ
โพสต์โดย: Bone ใน 26 เมษายน 2011, 12:02:31
อ้างถึงจาก: djoser ใน 26 เมษายน 2011, 10:49:02
หากเราเขียน PHP โดยแต่ละแนวดังนี้

1. เขียน มี HTML ทั่วๆ ไป พอต้องการค่าจาก PHP ก็ echo มา ฉะนั้น Code จะสลับกันไปสลับกันมาระหว่าง html และ php แต่ในความรู้สึกคือ ชอบแนวนี้ตรงที่ถ้า php return ค่าว่างมา หน้าเว็บเราก็ยังคง แสดงข้อมูลหรือต่างๆ ได้ตาม html ที่ครอบไว้

2. เขียนแนว PHP programming เต็มๆ คือ html ทั้งหมด ใส่ไว้ใน ค่า $html แล้วค่อย echo ทีเดียว เมื่อ query ค่าต่างๆ มารวมเป็นน่าเว็บได้แล้ว


แนวทางไหน มันจะทำให้การรัน script ดูมีประสิทธิภาพมากกว่ากันคะ อ่านการ optimize tuning แล้วก็ว่า การ echo ทีเดียวดีกว่า แต่การที่เราเขียน html ทั้งหน้า แล้วใช้ php เฉพาะจุดที่ต้องการ มันก็ดี

รบกวนแนะนำแนวทางด้วยค่ะ
ขอบคุณค่ะ :)


ในการ พัฒนา และการ optimize ทำแบบ 1 จะพัฒนาต่อยาก

ส่วนแบบ 2 จะพัฒนาง่าย ครับ แต่เวลาอ่าน จะอ่านยาก ซึ่งอนาคต จะพัฒนาแล้วปรับเปลี่ยน แบบ 2 มีมากกว่ามาก ครับ

และการ echo ไม่มีผลเรื่องเวลามาก แต่
ถ้าวิเคาระห์ แบบ 1 echo เมื่อเราต้องการ ทำ
ส่วนแบบ 2 echo สุดท้ายครั้งเดียว แค่เรื่องนี้ก้อ ต่างกันแล้วครับผม
ชื่อเรื่อง: Re: PHP performance เขียนยังไง ดีกว่ากันคะ
โพสต์โดย: dreamer ใน 26 เมษายน 2011, 12:34:26
จะชอบเขียนแบบเอา HTML มาใส่ในตัวแปรมากกว่า เพราะมองง่ายกว่า
ถ้าเอาไปแทรกใน html จะเจอพวก tag <?php ?> ทำให้มองดูยาก

แต่วิธีที่ดีที่สุดคือทำเป็น MVC ครับ แก้ไขง่าย หา bug ง่ายกว่า

อันนี้จากประสบการณ์นะครับ
ชื่อเรื่อง: Re: PHP performance เขียนยังไง ดีกว่ากันคะ
โพสต์โดย: gilbert ใน 26 เมษายน 2011, 12:43:05
มันมีอีกวิธีหนึ่งที่ผมใช้โดยเอาแบบมาจาก wordpress นะครับ เช่น

<?php if($value) { ?>
<div id="value" name="value"><?php echo '$value'; ?></div>
<?php } //endif ?>

คือทำให้ statement ของ php เป็น block ๆ แทน ผมว่าก็อ่านเข้าใจง่ายดีนะครับ

แต่งานที่ผมทำส่วนใหญ่จะเป็นพวก webapp เลยไม่ได้คำนึงเรื่อง seo เท่าไร เน้นคือ แก้ไขง่ายไว้ก่อนครับ
ชื่อเรื่อง: Re: PHP performance เขียนยังไง ดีกว่ากันคะ
โพสต์โดย: bankster ใน 26 เมษายน 2011, 13:07:52
ควรเขียนแยกให้ชัดเจนครับ ให้ PHP จัดการกับข้อมูลต่างๆ และ HTML/CSS/JS จัดการในส่วนของการติดต่อผู้ใช้ จะจัดการ แก้ไข พัฒนาต่อ ง่ายกว่านะครับ

ตัวอย่างเช่น เวลาเราเปลี่ยนข้อมูลที่แสดงก็ไปแก้ไข PHP หรือ อยากเปลี่ยนหน้าตาเว็บ ก็ไปแก้ไข HTML/CSS/JS

หรือแนะนำให้ศึกษาเรื่อง MVC ครับ ทำให้โค้ดของเราจัดการง่ายขึ้นเยอะครับ
ชื่อเรื่อง: Re: PHP performance เขียนยังไง ดีกว่ากันคะ
โพสต์โดย: djoser ใน 26 เมษายน 2011, 13:10:34
ได้ความรู้เยอะเลย ขอบคุณทุกท่านมากนะคะ
ชื่อเรื่อง: Re: PHP performance เขียนยังไง ดีกว่ากันคะ
โพสต์โดย: execter ใน 26 เมษายน 2011, 14:17:26
จขกท มีสองข้อให้เลือกผมเลือกข้อแรก แต่ ผมไม่แนใจว่า Single Quote หรือ Double Quote อันไหน มีผลทำให้ Script ช้าหรือไม่
ชื่อเรื่อง: Re: PHP performance เขียนยังไง ดีกว่ากันคะ
โพสต์โดย: gilbert ใน 26 เมษายน 2011, 14:25:15
อ้างถึงจาก: execter ใน 26 เมษายน 2011, 14:17:26
จขกท มีสองข้อให้เลือกผมเลือกข้อแรก แต่ ผมไม่แนใจว่า Single Quote หรือ Double Quote อันไหน มีผลทำให้ Script ช้าหรือไม่

single quote ครับ เพราะว่า complier จะมองข้อความภายใน เป็น string ทั้งหมด

แต่ถ้าใช้ double quote มันต้องวิเคราะห์ก่อนว่ามีตัวแปลอยู่ข้างในหรือไม่
ชื่อเรื่อง: Re: PHP performance เขียนยังไง ดีกว่ากันคะ
โพสต์โดย: m2studio ใน 26 เมษายน 2011, 14:33:03
แนะนำให้ทำเป็น MVC ครับ
ที่ผมใช้อยู่คือ
ด้าน Front End เรื่องที่เป็น Graphic ผมจะทำเป็น template file คือเป็น html file และมี place holder หรือช่องที่เอาไว้สำหรับใส่ตัวแปรหรือค่าที่ต้องการ
ด้าน Back end ส่วนที่ดูแลเรื่อง Business Logic จะเป็น PHP ทำหน้าคำนวณค่าทั้งหมด รวทั้งติดต่อ database แล้วส่งตัวแปรเป็น format เดียวกันกับที่ template นั้นๆ ต้องการ

ข้อดีคือเป็นระบบมากๆ แก้ไขง่าย หากวันใดต้องการเปลี่ยนหน้า html ให้แตกต่างจากเดิม ก็แค่แก้ html file นั้นๆ จบ ไม่ต้องแก้ code php แม้แต่บรรทัดเดียว

frame work ที่ผมใช้ในการทำ template คือ smarty
และส่วนที่ทำ javascript หรือ ajax นั้นใช้ Jquery เอา
ชื่อเรื่อง: Re: PHP performance เขียนยังไง ดีกว่ากันคะ
โพสต์โดย: m2studio ใน 26 เมษายน 2011, 14:34:23
ใครอยาก Optimize ตามนี้เลย
http://www.hm2k.com/posts/50-php-optimisation-tips-revisited
http://foliovision.com/2007/11/07/phpp-speed-security-code-optimization
ชื่อเรื่อง: Re: PHP performance เขียนยังไง ดีกว่ากันคะ
โพสต์โดย: Joejoe ใน 28 เมษายน 2011, 17:44:32
ผมคิดว่า
1. หากคุณนำ html tag ไปยัดไว้ใน ตัวแปรแล้ว จะเกิดการจองพื้นที่ใน memory ทันที
2. ถ้าหากคุณ ใช้ html  ผสมกับ php เป็นส่วน ๆ ไป จะดีกว่าครับ แต่ควรจัดสรรเป็นสัดส่วน

ถ้าหากว่าคุณไม่ได้ใช้งาน framework MVC แนะให้เขียนแบบนี้ครับ


<?php
พี้นที่ ส่วนแรก ไว้ประมวลผล php คำนวณค่าต่างๆ ที่ควรคำนวนให้เรียบร้อยในส่วนนี้
$b = date('Y') + 543;
?>

<html>
<body>
<h1>Welcome </h1>
<?php
  เวลาใช้งาน php ในส่วนของ body ต่างๆ แนะนำให้เรียกใช้เพื่อการแสดงผลเท่านั้น เช่น ปี พ.ศ. เราได้คำนวณไว้เรียบร้อยแล้ว จากส่วนแรก ของ page ( บนสุด ) จากนี้เราก็แค่

echo $year; ออกมาอย่างเดียวครับ เวลา เราคำนวณผิดพลาดจะได้รู้เลยว่า ต้องไปแก้ในส่วนคำนวณจากด้านบนครับ จะได้ไม่ต้องมาคว้านหา ใน body ซึ่งเต็มไปด้วย html  + php ที่ต้องแสดงผลเยอะไปครับ หายาก
?>
</body>