إيجابيات وسلبيات استخدام ملف واحد كامل صفحة الويب ؟ [مغلقة]

StackOverflow https://stackoverflow.com/questions/121849

  •  02-07-2019
  •  | 
  •  

سؤال

لست متأكدا كيف لي أن أعبر عن هذا ، ولكن سوف يعطي هو محاولة.
لقد بدأت مؤخرا الترميز أعمالي في وجوه المنحى PHP و أنا أتساءل إذا كان وفق أفضل الممارسات لاستخدام صفحة واحدة حيث المحتوى يتغير اعتمادا على البيانات SQL و $_GET متغير ؟

إذا كان الأمر كذلك/لا, لماذا ؟

تحرير:نلقي نظرة على بلدي بعد المقبل ، أكثر تعمقا التفاصيل.

هل كانت مفيدة؟

المحلول

هل يسأل عن استخدام وحدة تحكم أمامية نمط ، حيث ملف واحد يخدم جميع الطلبات الخاصة بك ؟ غالبا ما يتم ذلك مع index.php و mod_rewrite الحصول على جميع الطلبات مع بقية URL تعطى إلى أنها معلمة في سلسلة الاستعلام.

http://www.onlamp.com/pub/a/php/2004/07/08/front_controller.html

أنا أميل أن يوصي هذا النمط أن تستخدم للتطبيقات ، لأنه يتيح لك مكان واحد للتعامل مع أشياء مثل المصادقة ، في كثير من الأحيان سوف تحتاج إلى دمج الأشياء في تشديد المستوى حيث وجود ميزات جديدة تكون الطبقات التي تم تسجيلها مع وحدة تحكم عن طريق آلية ما يجعل الكثير من معانيها.

المخاوف حول عناوين الآخرين ذكرتها ليست دقيقة لأنه لا توجد علاقة حقيقية بين URL هيكل وبنية الملف إلا إذا كنت تستخدم التقنيات القديمة من بناء المواقع.قطعة جيدة من أباتشي وظائف تقوم على مفهوم أن الملف/الدليل بنية بنية عنوان URL متميزة المفاهيم (الاسم المستعار وحدة وحدة إعادة كتابة المحتوى التفاوض ، وهلم جرا)

نصائح أخرى

  • غير قابلة للتطوير
  • من الصعب على إدارة المدونة
  • محلل إلى تحليل كل شيء
  • خير مثال على رمز رائحة
  • خطأ واحد تعطل الموقع كله

إذا كنت تقصد الصفحة المقصودة واحدة (مثلا ، index.php) ثم يستخدم متغيرات جلسة العمل وما إلى ذلك.إلى معرفة لأي رمز يحتاج إلى تدرج ، ثم نعم, هذا هو في كثير من الأحيان استخدام تقنية.

تحرير:و من خلال ما سبق يعني ما دانييل Papasian يشرح بالتفصيل في منصبه ممتازة

إذا كنت تقصد وضع كل من HTML, SQL و PHP في ملف واحد ثم لا للأسباب التي أشار GateKiller.

على actaul صفحة الملف يجب أن تحتوي فقط على ما هو مختلف عن تلك الصفحة من معيار "الصفحة" على موقع الويب الخاص بك(مثل عنوان الصفحة, صفحة الفهرس قد يكون رمز للحصول على أحدث الأخبار ، إلخ).كل شيء وهو (أو) أن تستخدم في أكثر من مكان واحد ، يجب أن يتم نقل الخارجية php الملفات المدرجة.ومن الأمثلة على ذلك:

  • قاعدة بيانات المعلومات (كلمة المرور, اسم المستخدم, الخ)
  • رأس/تذييل الصفحة
  • رمز الدخول

هذا يجعل رمز بكثير easyer لإدارة.على سبيل المثال إذا قمت بتغيير كلمة مرور قاعدة البيانات ، ملف واحد فقط التي تحتاج إلى تحديث ، أو إذا قررت إضافة لافتة إلى الرأس ، مرة أخرى صفحة واحدة فقط وليس كل الصفحات التي تحتاج إلى تغيير.

كما أنه يجعل إضافة ميزات جديدة من العمل أقل بكثير ، على سبيل المثال صفحة جديدة قد يكون ببساطة:

<?php
require ('config.php')
require ('start.php')
require ('header.php')
//custom page stuff
require ('footer.php')
?>

أو إضافة السيارات الدخول عن طريق الكوكيز ، هو تغيير بسيط على تسجيل الدخول() وظيفة (إنشاء ملف تعريف الارتباط) ، start.php (التحقق من كوكي + الاتصال الدخول()).

كما يمكنك easyily نقل هذه الملفات إلى مشاريع أخرى في المستقبل.

كل شيء gatekiller ذكر + يمكنك أيضا الاستفادة من أواخر ملزمة.

  • من الصعب على إدارة المدونة

إذا كنت تستخدم الإصدار التحكم سيكون من الصعب دحر أي التغييرات التي قد يكون قد حدث واحد "" صفحة من موقع الويب الخاص بك.منذ سيكون لديك إلى الاندماج مرة أخرى في أي شيء التي قد تأتي بعد

ليس محرك بحث ودية إلا إذا كنت تستخدم وزارة الدفاع إعادة كتابة

أنا أميل إلى أن أختلف مع معظم - إذا كان الموقع الخاص بك هو تدار من قبل CMS مخصص أو شيئا من هذا القبيل, لا يوجد سبب لعدم استخدام صفحة واحدة.

فعلت نفس الشيء مع CMS كتبت في حين يعود.جميع العملاء افتراضي واحد.صفحة asp التي الاستعلام عن قاعدة البيانات على موضوع, المحتوى, المرفقات, الأعضاء الأذونات.لإجراء تغيير ، أنا فقط بالتغيير مرة واحدة ، و نسخها إلى عملاء آخرين إذا كان التغيير المطلوب في ذلك.

هذا بالطبع لا تعمل في معظم الحالات.إذا كان لديك موقع على شبكة الانترنت أن يفعل الكثير من الأشياء المختلفة (سم بلدي فقط تكرار بعض المهام أثناء تحميل الصفحة) ثم عدة صفحات حقا هو السبيل الوحيد للذهاب.

لأولئك منكم الذين يرغبون هناك هو الإطار الذي يستخدم هذا النموذج المحدد.أصلا من أجل كولد فيوجن.لا يزال هناك مجتمع على هذه المنهجية ، الإصدار 5.5 صدر قبل نحو سنة (ديسمبر 2007).

FuseBox إطار الموقع

ويكيبيديا

هذا screendump التالية التفسير قد يعطي فكرة أفضل عن ما يبدو في هذه اللحظة.

File-structure

يمكنني استخدام نفس النموذج الذي 'الإنترنت صديق' دانيال Papasian و قليل من الآخرين أذكر ؛ تحكم الجبهة.

بلدي صفحة الفهرس يبدو مثل هذا.

require_once 'config.php';
require_once 'class_lib/template.php';

$template = new template($config);
$template->dataQuery();
$template->pageCheck();
$template->titleAssembly();
$template->cssAssembly();
$template->metaAssembly();
$template->menuAssembly();
$template->content();
echo $template->publish();

فئة بناء بفتح ملف القالب الرئيسي والأحمال إلى متغير كل طريقة يمكن التلاعب مع طريق استبدال الكلمات الدليلية مع التعليمات البرمجية التي تم إنشاؤها.عناوين قبيحة ليست قضية منذ سأكون باستخدام mod_rewrite لتنظيفه.
ومع ذلك ، Papasian لديه وجهة نظر ، فإن هذا الأسلوب هو أكثر ملاءمة تطبيقات على شبكة الإنترنت وما شابه.

أعتذر عن عدم محددة جدا مع سؤالي في المقام الأول.
علاوة على ذلك, "شكرا جزيلا" لكل من إسقاط بضعة خطوط للمساعدة.

أنا غالبا ما تستخدم ملف php دون .php التمديد (أي موقع) و إضافة

<Files site>
ForceType application/x-httpd-php 
</Files>

إلى .htaccess الذي يجعل أباتشي interprete الملف باسم ملف php.

يمكنك تحليل فأر إلى الملف في url: http://www.yourdomain.com/site/var1/var2/var3

استخدام

$var_array = explode("/",$_SERVER['REQUEST_URI']); 
$var1 = $var_array[1];
$var2 = $var_array[2];
$var3 = $var_array[3];

للحصول على فأر.بهذه الطريقة يمكنك استخدام ملف واحد مع searchengingfriendlyurls دون modrewrite.

re:URL بنية الملف

أنا حولت الموقع حيث كل محتوى في قاعدة بيانات الوصول إليها مع الدليل ؟ p=434 نموذج.لم يكن هناك أي فائدة من استخدام قاعدة البيانات و الموقع كان مربكا إلى الناس الذين اضطروا إلى إضافة محتوى منذ اضطروا إلى تحرير المحتوى مع المتصفح وصفحات مجرد أرقام.

أنا سحبت كل المحتويات ووضعها في ملفات منفصلة.كل معقولة اسم و تنظيمها في مجلدات.كل ملف بدا شيء من هذا القبيل:

require('sitelib');
do_header('about', 'About Us');
// content here
do_footer();

العميل أحب ذلك.أنهم كانوا قادرين على استخدام أي محرر HTML في العثور على حق الملف و إجراء التغيير.وأنهم كانوا قادرين على جعل صفحات جديدة.كل شيء أن أقول:أحيانا, فمن المفيد أن يكون لديك عنوان URL ملف الهياكل المباراة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top