php - ما هي أفضل طريقة للوصول إلى قاعدة بيانات من فب؟




mysql database (10)

عند الوصول إلى قاعدة بيانات ميسكل من فب يبدو أن هناك عدة طرق:

Sprinkle the code with raw SQL-statements
Use the VO-pattern from Java (e.g. DB_DataObjects from PEAR)
DIY and write a script that auto-generates one PHP class per database 

وبصرف النظر عن هذا قرأت أيضا عن LINQ in .NET ولكن لم أر تنفيذه في PHP.

ما هي الأنماط الأخرى هناك؟

إذا بدأت في إنشاء موقع ويب من الصفر اليوم، ما الذي ستختاره؟

توضيح: هذا ليس حول طبقات دب التجريد (بدو، MDB2). النمط الذي نوقش هنا هو شيء كنت بناء على بدو أو MDB2.


ما هي الأنماط الأخرى هناك؟

أكتيفريكورد - يمكنك أن ترى مثالا على ذلك في كاكيفب .

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

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

أنا لم تستخدم طبقة تجريد الكمثرى بعد ولكن يبدو أيضا جيدة. زند أيضا مكتبة قاعدة بيانات في إطار زيند .


وبصرف النظر عن هذا قرأت أيضا عن لينق في. نيت ولكن لم أر تنفيذه في فب.

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


أفعل نهجا ذو شفرات ثنائية المستوى:

المستوى الأول هو مجموعة بسيطة من الوظائف:

  • do_query (سكل): ترجع كائن نتيجة (أوبين).
  • get_record (سكل): يقوم بإرجاع السجل الأول، يتم إغلاق الاستعلام.
  • get_datum (سكل): يقوم بإرجاع الحقل الأول من السجل الأول (الاستعلام مغلق)

بعد ذلك، أنا أكتب طبقة نموذجي، مع وظائف محددة لجميع عمليات البيانات. وعادة ملف واحد مع أقسام لكل كائن مفاهيمي. وترتبط المعلمات إلى البيانات المجردة، وليس إلى بنية سكل. كل سكل في هذه الطبقة.


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

ويقدم ميزات مثل إعداد + محاكاة مضاهاة دبس التي لا تدعم بشكل صحيح، ويسمح لك لاستخدام النائبة التي هي ممارسة جيدة لتجنب مشاكل حقن سكل.

وسوف تعمل مع: ميسكل / ميسكلي، بسكل (بوستغريزل)، oci8 (أوراكل)، سكليت، مسكل، مسكل (ميكروسوفت سكل سيرفر)، سيباس، إنفورميكس، فبسل، إيباس، أودبك.

إلقاء نظرة على وثائق MDB2 لنرى كيف يعمل.


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

سكل الخام في جميع أنحاء التعليمات البرمجية سوف يكون من المستحيل على نطاق واسع.


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


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


قراءة ما السيد ليردورف نفسه أن يقول عن "إضافة هيكل" إلى موقع فب.

www.oracle.com/technology/pub/articles/php_experts/rasmus_php.html


ما تبحث عنه هو نموذج كائن-علائقي (أورم). هناك زوجين مختلفة منها هناك:

إذا كان أورم أكثر من اللازم لمشروعك، ثم كنت مجرد العودة إلى واجهة دب العامة مثل بدو وبناء البيانات المعدة يدويا.


هل يمكن استخدام أورم مثل عقيدة.





pear