التغطية المصورة ليوم سوالف: الجزء الأول، الجزء الأخير
الفائزون في المسابقة الأصغر لسوالف كاست

 

العودة   سوالف سوفت > قسم تطوير وبرمجة المواقع للمتقدمين > PHP
المدوّنات البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

رد  
 
LinkBack أدوات الموضوع
عضو نشيط
تاريخ التسجيل: Jun 2004-
#1 (permalink)  
هل php لغة برمجة بالمعنى الحقيقي


بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته وتحية طيبة …

في الحقيقة راودني هذا السؤال بعد أن قمت بمراجعة الـ source code الخاص بلغة php والمكتوب على لغة C …

فهل php لغة برمجة بالمعنى الحقيقي ..؟
في حقيقة الأمر أن php ليست إلا معالج نص HTML لا أكثر وأكبر دليل على كلامي هو إختصار php وهو php Hypertext Preporcessor وليست لغة برمجة بالمعنى الحقيقي والمقصود من هذا الكلام هو أنها تعطيك خيارات للتعامل مع نص html بشكل لا تتيحه لك html ولتوضيح هذا الكلام بشكل أخر لاحظ مايلي

فلو قلت لك اكتب لي نص Abdulah بشكل عريض فستقول لي هل انت (احمق ..!) (لاتغلط) ..

طبعاً ستقول سأضعها بين وسمي b …(شاطر)

الآن لو قلت لك أكتب Abdulah بشكل عريض مرتين فستقوم بتكرارها مرتين وإذا قلت ثلاثة فستكرر بنفس العدد وهكذا …

لكن ماذا لو قلت لك اكتب Abdulah بشكل عريض مليون مرة (عارف الجواب : حتقولي رجاءاً أغلق فمك وفكنا من شرك وانقلع من سوالف)

هنا مربط الفرس …
فجاءت php لحل مثل هذه المشاكل فوفرت لك for وdo..while و while …

وبهذا يمكنني الآن كتابة كلمة Abdulah بشكل عريض مليون مرة بإستخدام for كالتالي



كود:
for($i = 0; $i < 1000000 ; $i++)

وبذلك لم تقم php إلا بعمل تكرار واخراج لا أكثر …

وبإمكانك البحث في أغوار php كي تجد أشياء مشابهة لهكذا مفاهيم …
مثل if الشرطية كذلك فـ php لاتعمل مقارنة على مستوى لغة الآلة بإستخدام jump وغيرها وبعض شروط الأسمبلي بل هي تستخدم شروط مقارنة على التوافق تعمل من قبل لغة C لا أكثر .

أما بالنسبة لقولنا لغة php فهو قول مجازي لا أكثر …

وأرجوا أن أكون قد وفقت في إيصال المعلومة

تحياتي

أخوكم عبدالله عيد






__________________
قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)
عبدالله عيد غير متواجد حالياً   قديم 21-10-2006, 07:57 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Nov 2005-
#2 (permalink)  

كلامك صحيح أخي الكريم ! ولكن لاتنسى أنا ال PHP لاتقف هنا عند تكرار أو شي كهذا !! يمكنك عمل الكثير من الأشياء تعجز ال HTML عملها !! ولاتنسا أيضاً أن C لغة للتطبيقات العادية أما PHP لغة التطبيقات الويب ! هذا فرق وأي شيء يمكن أن يكون له أساس يعمل عليه ! يعني كقولك أنها "وغيرها وبعض شروط الأسمبلي بل هي تستخدم شروط مقارنة على التوافق تعمل من قبل لغة C لا أكثر ."

اعتقد هي لغة برمجة !! وبإمكانك إصدار لغة برمجة لك ! الشغلة بسيطة تعلم برمجة كومبايلر خاص وابدأ ياعم !!


هذه وجهة نظري !

تحياتي
فراس






__________________
مدونتي
Www.AlMashroo.Com
feras007 غير متواجد حالياً   قديم 21-10-2006, 08:14 PM
رد مع اقتباس
Moderator
تاريخ التسجيل: Aug 2004-
#3 (permalink)  

السلام عليكم..
مثل ما تعرف ان الPHP يندرج تحت الScripting Languages
التعريف الموجود في WikiPedia هو

[LEFT]Scripting languages (commonly called scripting programming languages or script languages) are computer programming languages created to shorten the traditional edit-compile-link-run process.[/LEFT]

اي هي لغه برمجة تساعد في تبسيط او تقصير العمليات الطويله التي تستغرق زمن اطول اذا لم تستخدم تلك البرمجة

الPHP قد تمت برمجتها من قبل شخص كان يود في تقصير عملية التصميم او فعل شيء يسهل عملية التغير التي تتم بشكل مستمر .. فكان المقصود من الPHP هو تسهيل عمليه تحرير موقع .. فتخيل موقع اخباري . يتغير محتواه كل 3 ساعات .. فهل سيكون هناك مصممين لكي يعمل ذالك كل 3 ساعات؟


الPHP بكل احترام لغه برمجة .. لانك يجب ان تتعلم هذه اللغه .. و مع الاصدارات الجديده .. تستطيع التعامل مع الSockets و الMemory و ايضا التعامل مع لغات اخرى .. مثل ما اعمله مع شركتي .. نحن نجعل الPHP يتعامل مع لغات كثيره مثل الLISP و لغة ال++C .. كيف .. بطريقه الSockets و طرق الSSH .. و ايضا هناك طرق اخرى مثل .. تبادل الObjects مع الJava و الErlang .. نحن نعرف ان الPHP لا يستطيع ان يتعامل مع اكثر من 100 استعلام في نفس الوقت (على حسب قوه السرفر) .. و ايضاً الMySQL لا يستطيه ان يتعامل مع استهلامات بالكميات .. فالحل هو ان ترسل معلومات لبرنامج اخر لكي يفعل ذالك .. فهاذا يعطيك الايحاء ان الPHP له نفس الامكانيات التي توجد في اللغات البرمجه الاخرى..

لا تنسى ان الPHP5 تتيح لك ان تتعامل مع الObject او طريقه برمجه الOOP .. فهذا تعلمه ليس بالسهل .. الا اذا كانت لك سوابق في برمجه ال++C او الJava .. و الPHP6 التي سيطرح عن قريب .. يتعامل في معضم اوقاته مع الObjects سيكون قريبه جدا من الJava ...

قد يخطر ببالك ان الPHP لغه تمر بمترجم في كل مره .. ولكن هناك Compilers لكي يعمل Cashe للexectutable كود ..

وشكراً على فتح الموضوع هذا ... تنتظر رأيك ..
اخوك خالد






__________________
هلابي افضل المواقع العربية تصميماً
انصح باستخدام ابونتو
hilaby غير متواجد حالياً   قديم 22-10-2006, 12:26 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Dec 2001-
#4 (permalink)  

كلامك سليم 100 %، بالرغم من أننا نتداولها على أنها لغة، إلا أنها في الواقع هي صممت لمعالجة نصوص مكتوبة في ملفات نصيّة ومغطات بأوسمة خاصة..

وبالنسبة لصياغة PHP فهي مقاربة للغات التالية:
C -- بحكم أن PHP مبنية على ال C أصلا ..
Java -- برمجة الكائنات في PHP5 أقرب ما تكون إلى أسلوب لغة الجافا
Perl -- خصوصا في regular expressions، واللي يقرأ في الperl سيلاحظ تأثيرها على مطوري PHP

وPHP لاتعالج إلا ما هو موجود داخل الأوسمة الرئيسية: <?php?> و<??> و <?=?> و <%%>، أما أي نص آخر فستطبعه كما هو.

لذلك فإن تسمية PHP بأنها لغة، فهي مجازية.

ووللمعلومية أيضًا فإن ASP.NET لا تسمى لغة أيضًا، كون أنها لغويًا تعتمد على لغات أخرى مثل VB.NET أو C# أو J# أو غيرها، لذلك ASP.NET تعتبر (تقنية) أكثر من كونها لغة.






__________________
l a h l o o b @ g m a i l . c o m
اللهلوب غير متواجد حالياً   قديم 22-10-2006, 12:35 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2004-
#5 (permalink)  
تحية طيبة أساتذتي الأعزاء

تحية طيبة للأستاذ feras007 و الأستاذ خالد ولك يا أستاذ لهلوب ..

أولاً أنا أحترم رأيكم وأنا ليس لدي مشكلة إن كانت php لغة برمجة بالمعنى الحقيقي أم لا ولكن ..

أنا لفت نظري شئ واحد عندما فتحت المترجم الخاص بلغة php والمكتوب على لغة C وعندما راجعت وقرأت الشفرة الخاصة بـ Zend رأيت أشياء عجيبة ..

لذلك أنا هنا سأوضح كلامي من حيث ما فوجئت به :

أولاً الجميع يعرف أن المترجمات تمر بمرحلتين :

الأولى هي Front-End وهذه المرحلة تختص بالأمور التحليلية وليس فيها أي عمليات تنفيذ ويوجد فيها ثلاثة مراحل وهي

1- Tokenizer وهو الذي يقوم بتقسيم الكود البرمجي إلى وحدات صغير مثل الكلمات والفواصل والأرقام ويضع كل واحدة منها في وحدة معينة .

2- Parser وهو الذي يأخذ الوحدات من الـ Tokenizer ويقوم بإنشاء شجرة ويتأكد من صيغة الكتابة الخاصة باللغة أهي صحيحة أم لا .

3- Semantic وهو المسؤل عن معرفة المعنى الخاص بالكود الذي كتبة المستخدم أي ما معنى هذا الكود الذي كتبه المستخدم .

ثانياً الجزء الثاني من المترجم هو Back-End وهذه المرحلة هي أصعب جزئية في علم المترجمات حيث تحتوي هذه المرحلة على جزئين كالتالي

1- Code Optimizer وهذا يختص بتوليد وتصغير الشفرة المولدة من قبل مرحلة الـ Semantic
2- Target Code Optimizer وفي هذه المرحلة يتم توليد شفرة الأسمبلي الخاصة ويتم إستدعاء برنامج الأسمبلر هنا لتوليد الملف التنفيذي .

إذاً أصبح أي مترجم لأي لغة برمجة كالتالي :

Tokenizer
|
7
Parser
|
7
Semantic
|
7
Code Optimizer
|
7
Target Code Optimizer


طيب يا عبدالله عيد ماهذه الزحمة ؟

كل الحكاية من هذه الزحمة أنه طالما أنك ذكرت كلمة Script language بالذات مع php فهي تطبق مرحلة Front-End فقط ثم تعطي المخرجات لأنه في المرحلة الأولى وبعد مرحلة الـ Semantic يتم توليد لغة HTML وليس Intermediate Language وبعدها سيستقبل المستعرض المخرجات .

أي بكلام أخر فإن php لاتحتاج إلى توليد لغة ألة ولا إلى توليد لغة وسيطة مثل اللغات الأخرى لأنها في الأساس لاتحتاج إلى مرحلة الـ Back-End .

وخير دليل على كلامي هو إختصار PHP وهو PHP Hypertext Preprocessor وهي تعني بالعربي وبشكل دقيق (المعالجة قبل النص التشعبي)

وهنا أنا لا أقول أن لغة php ليست لغة بل هي لغة محترمة ولكن ليس بالمعنى الحقيقي من الداخل فهي جاءت كما ذكرت سابقاً لتسهيل بعض الأمور لا أكثر ومنها ماتم ذكره في الأعلى .

وللبقية حوار

تحياتي

أخوكم عبدالله عيد






__________________
قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)
عبدالله عيد غير متواجد حالياً   قديم 22-10-2006, 01:14 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Jul 2002-
#6 (permalink)  

هي ليست لغة برمجة حقيقية (نعم) ..

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

فهي تعتبر وسيط اللغات لتطوير الويب ..

ولكن نأتي للأمثلة التي طرحتها .. فهي أمثلة لإستخدامات .. قد تتمكن الجافا بحلها بسهولة .. فنتسائل ..

هل (الجافا) لغة برمجة حقيقية؟؟ .. بكل تأكيد .. ومع أن الجافا تستخدم لتطوير محتوى الويب ... وتستخدم لتطوير php .. و asp .. إلا أنها ليست لغة وسيطة .. بل لغة مجمعة ..

تحياتي لكم ..






__________________
بداية للمشاريع التجارية

ASP.NET,ASP 3.0

المدونة الشخصية : asp2asp.com

عدنا والعود أحمد...
asp2asp غير متواجد حالياً   قديم 22-10-2006, 01:20 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2004-
#7 (permalink)  

بالنسبة لموضوع الـ Object والـ Classes في php فهي تستخدم من الداخل مبدأ الـ HashTable أوكي وهو ما يسمى بجدول البعثرة وهو أحد الـ Data Structure المشهورة وهي أيضاً ليست Object مثل الموجود في C# أو Java بل هي معلومات مخزنة في جداول يتم التعامل معها بمجموعة من الشروط و للتوضيح عن ألية العمل الخاصة بـ object في php فأنا سأريحك وأعطيك إياها بالتفصيل من الداخل ..

الآن إفرض أنك أنشأت كلاس بإسم My وفيه دالتين هما myA و myB وفيها متغيرين هما x,y فإنك ستكتب التالي :

كود:
class My
{
 var $x;
 var $y;
 function myA() {...}
 function myB() {...}
}
الآن هل تعرف ما الذي يحدث في الحقيقة عندما تقوم بتشغيل مترجم php وتستدعي هذه الصفحة إما من المستعرض أو بعبارة include سيحدث الآتي :

1- سيمر مترجم php على هذا الكلاس ويقوم بعمل جدول كالتالي بعد قراءة هذا الكلاس :

className : My
variables : x,y
methodes : myA,myB

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

الآن عندما تكتب أن الكود التالي :

كود:
$go = new My();
يحدث التالي :

يقوم php بتخزين المتغير go في جدول عام خاص بالكائنات ويكون كالشكل التالي :

objectName | className
cc | Mydoc
go | My

وعندها سيصبح المتغير go يشير إلى الكلاس My كما ترى في الأعلى الآن عندما تقوم بعمل الآتي

كود:
go->myA();
فكل الحكاية إنه يروح لجدول الكائنات ويرى المتغير go يتبع الكلاس My وعندها سيذهب لجدول الكلاس My ويبحث عن myA فإذا وجدها نفذها وإذا لم يجدها أصدر لك رسالة تقول لك :

يالحبيب لا تخرف الكائن go مافيه دالة بذا الأسم

ونفس الكلام ينطبق على المتغيرات x و y

------------------------------------------------------------

أما بالنسبة للكائنات في C# و Java فكما ذكرنا فهذه اللغات تمر بمرحلة الـ Back-End لذلك الكائنات في تلك اللغات بعيدة كل البعد عن مفهوم الكائنات في php

وأرجوا أن أكون وفقت في إيصال المعلومة ولو بشكل سريع ...

وللبقية حوار

تحياتي

أخوكم عبدالله عيد






__________________
قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)
عبدالله عيد غير متواجد حالياً   قديم 22-10-2006, 01:34 AM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Nov 2005-
#8 (permalink)  

شرح جميل
بس عشان نكون في الصوره اكثر
في مرحله Back-End
ماالذي يحدث بالظبط
0--------------------------------0






موقع روش غير متواجد حالياً   قديم 22-10-2006, 03:12 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2004-
#9 (permalink)  

في مرحلة الـ Back-End يتم التحويل في بداية هذه المرحلة إلى مايسمى بـ Intermediate Language وهي لغة يقوم المترجم الخاص باللغة بالتحويل إليها وهي لغة يؤلفها المترجم وهي تشبه لغة الأسمبلي ولكنها ليست لغة الأسمبلي ومن أشهر لغات الـ Intermediate code هي three-address-code و P-Code .

والسبب في توليد الـ Intermediate Code من قبل لغة البرمجة لكي تكون platform Independent أي تعمل على أي نظام تشغيل فعندما تكون اللغة تعمل على ويندوز وعلى معالج معين مثل Intel فإن المحاكي الخاص باللغة سيقوم بالتحويل للغة الأسمبلي المناسبة للمعالج Intel ونظام التشغيل ويندوز ,,, وسيتم تحويل لغة الـ Intermediate Code إلى أسمبلي أخر في حال كان نظام التشغيل Linux مثلاً وهكذا ...

وهذه الخطوة لن تفيد في شئ ضمن php لأنه من مرحلة الـ Semantic في الـ Front-End يتم توليد المطلوب وهو HTML و HTML تعمل على أي نظام تشغيل وأي مستعرض ...

فما الذي تستفيد منه php من توليد الـ Intermediate Code ... هل ستحولها إلى HTML ؟

ممكن أن تفعل ذلك ولكن ستكون عملية تأخير لا أكثر ..

وللبقية حوار ..

تحياتي

أخوكم عبدالله عيد






__________________
قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)
عبدالله عيد غير متواجد حالياً   قديم 22-10-2006, 03:21 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Mar 2003-
#10 (permalink)  

بارك الله بك، قلما نجد مصدر للمعلومات بهذا الشكل و موضوع يذخر بالفائدة هكذا






ادارة المنتدى غير متواجد حالياً   قديم 22-10-2006, 05:30 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Feb 2002-
#11 (permalink)  

ماشاء الله عليك اخوي عبدالله عيد اهنيك على هالمعلومات وجزاك الله الف خير

الواحد وهو يقرا هالمعلومات يكون عنده ثقة بمصدرها لانها علمية ودقيقة جداً

الله يزيدك من علمه ويبارك لك فيه يارب

التعمق في ابسط المعلومات يفتح ابواب واسعة جداً ..






__________________
I love Php
Email Only
Ziyad(AT)alsharan.com ,I don't have Massenger
Ziad غير متواجد حالياً   قديم 22-10-2006, 08:51 AM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Sep 2006-
#12 (permalink)  

اشكرك أستاذي عبدالله

على هذا الطرح المتعمق المفيد






__________________
للتواصل
http://saafer.raslny.com
سفير التقنية غير متواجد حالياً   قديم 22-10-2006, 04:38 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2004-
#13 (permalink)  
لا شكر على واجب

بسم الله الرحمن الرحيم

أولاً لا شكر على واجب ونفع الله الجميع بإذنه تعالى ... نتابع .

الآن لتوضيح فكرة بناء لغة برمجة تشبه php فأنت لن تضطر لشئ كبير وسأعطيك مثال يوضح لك كيف تعمل php من داخل لغة C .

وخير مثال للتوضيح هو محركات القوالب ؟ (هي ياذكي لاتتفلسف هذه لغة وهذا محرك قوالب ؟!! طيب لا تدف خليك معي لحظة)

شوف الآن سأتكلم قليلاً عن لغة C لكي تتضح الفكرة ..

فالبنسبة للغة C فهي تشبه في تركيبها اللغوي أومن حيث الكتابة تشبه php بنسبة 90 % وسأضرب مثالي هنا على أحد الأشياء الموجودة في لغة C وهي جملة for فهي تشبه إلى حدٍ ما for الموجودة في php ... وصيغتها في لغة C

كود PHP:

int a 
100;
int j;
for(
1<= aj++)
 
printf("Hello, Swalif..!"); 
لاحظ معي الآن ...
هذه حلقة for بسيطة في لغة C لتطبع جملة Hello, Swalif ...

طيب مالحكمة من هذا ...؟

بما أن php مكتوبة على C ... فعندما تكتب أنت for على php فإنه في الحقيقة لا يتم توليد لغة ألة ولا لغة أسمبلي كما ذكرنا بل سيتم عمل for من داخل لغة C وهكذا لـ ifو do..while و switch ...

كيف ذلك ؟

الآن لاحظ كود php التالي :-

كود PHP:

for($swalif 0$swalif 100$swalif++)
 echo 
"Google"
مالذي يحدث هنا في الحقيقة ...

من داخل محرك Zend و من داخل لغة C تحديداً هناك نوع إسمه zval في محرك zend هذا النوع مخصص لمتغيرات php وهو يأخذ أي نوع وهذا المتغير variant أي أنه يشكل على نوع البيانات الذي تريده فمرة يكون float ومرة يكون double ومرة يكون object ومرة يكون array مرة string دون أي مشاكل لأنه ببساطة داخل هذا النوع توجد قيمة فإذا كانت 1 مثلاً فهو string و 2 فهو object وهكذا ..
واكبر دليل على كلامي هذا وعلى مصداقية هذا النوع عندما تكتب أي متغير في php فإنه بإمكانك أ تضعه integer في السطر الأول وتحول إلى مصفوفة في السطر الثاني المهم ....

نتابع المثال ...
سيقوم محرك zend بإنشاء متغير بإسم swalif من النوع zval داخل zend ويعينه على أن integer لأنه اخذ القيمة 0 بعد ذلك يشوف كم أقصى عدد للعداد ويرى أنه 100 وبعدها يرى مقدار الزيادة ويجد أنه بـ 1 فقط وبعد ذلك يرى الجمل الموجودة بداخل for ويولد الشفرة الموازية لها بلغة C ثم يستخدم for الموجودة في لغة C ويعطيك المخرجات كالتالي

كود PHP:

zval 
var = zend_ctor("swlaif",ZEND_INT,...);
int max 100;
int step 1;

for(var->
ival 0; var->ival maxstep++)
 
printf("Google); 
وهذا بشكل مبسط ... لكي أوضح لك كيف يتم التوليد بشكل مبسط .. وهكذا لـ if و غيرها من جمل php ...

الآن بعد أن رأيت ذلك هنا سأرجع لموضوع محرك القوالب الأن أنت بإمكانك أن تقلب السحر على الساحر وعمل لغة Script بواسطة php وتسميها Swalif Script Language وذلك أن تؤلف الطريقة التي تكتب بها اللغة الخاصة بك وكل ماعليك أنت كمبرمج أن تقوم بتوليد الكود المطابق لها بواسطةphp و للتوضيح فأنا سأصنع لغة بإسم Swalif وسيكون الـ for فيها كالتالي :

كود PHP:
for 0 to 10 step 2
 
PRINT "Google" 
وعندها كل ماعلي هو أن أقرأ هذا الكود وأنفذ الشفرة الموازية لهذا الكلام بواسطة php وهي ستكون

كود PHP:

for($i $i 10 $i += 2)
 echo 
"Google"
وهذا ما جاءت به محركات القوالب في الأصل لذلك قامت المشاكل عندما جاءت فكرة محركات القوالب فقالوا لا نحتاج لها لأن Php نفسها هي محرك قوالب !!!!

طيب السؤال هنا إذا كانت php كما تقول يافالح فكيف تتعامل مع أشياء محسوسة مثل قواعد البيانات والـ Socket وغيرها من المكتبات وترينا نتائج مبهرة على ذلك ؟

الجواب : أبسط مما تتصور ..

في php ذكرنا في الأعلى أن المتغيرات التي تكتبها تتحول إلى نوع متغير في C بإسم zval إذاً

عندما تكتب أنت أي دالة مثل

كود PHP:
mysql_connect("localhost",$user,$pass); 
فكل الحكاية أن php جابة مكتبة mysql المكتوبة على السي >>

وعندما تكتب أنت ذلك فسيقوم php بمقارنة إسم الدالة المطلوب ويستدعي الدالة المناسبة من خلال لغة C يعني مثل الجدول إذا لقيت هذي أستدعي هذي وإذا لقيت هذي استدعي هذي وهكذا ...


وهذا بإختصار معنى كلمة Script عندما تجدها في لغات برمجة السكربتات وهي تعني (نص)

وأرجوا أن أكون وفقت في إيصال القليل على الأقل

وللبقية حوار ..

تحياتي

أخوكم عبدالله عيد






__________________
قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)
عبدالله عيد غير متواجد حالياً   قديم 22-10-2006, 04:54 PM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Aug 2005-
#14 (permalink)  

تشكر على الموضوع اخي عبدالله ...

في البداية ، بما أنك تطرقت إلى كيفية ترجمة كود الـ PHP .. وأنك اذا دققت في كيفية عملها ستجدها تترجم إلى لغة C ... بما أنها ترجمت إلى لغة C أليس هذا يعني أنها لغة برمجة ... !؟

ربما كانت تعتمد على أسماء مستعارة Aliases أو أي طريقة أخرى لكنها لا تزال تدعى باسم لغة .. فلو كانت هذه العمليات هي عمليات تسهيلية .. لكن ، هل يعقل أن أقول لك قم ببناء هذا الموقع بلغة C ؟؟!

هل يمكنك أن تنكر أن بعض دوال PHP عبارة عن أسماء مستعارة لبعضها البعض ؟ وهل هذا ينفي أن الدوال ذات الأسماء المستعارة عبارة عن دوال ... ؟؟!!!

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

تحياتي، sBForum






__________________
أحمد أبو النصر
Junior php Developer
+20166196074
أحمد أبو النصر غير متواجد حالياً   قديم 22-10-2006, 06:54 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2004-
#15 (permalink)  
تحية طيبة للجميع ...

عزيزي الغالي ,,, تحية طيبة .

بالنسبة للتحويل إلى لغة C فهو لايتم كما تظن أنت أي أنه تحويل مباشر بالضبط ولكن أنا شرحت لكي أوضح فقط ...

لكن بالنسبة للتحويل فهو يتم داخل بنى هيكلية عبارة عن HashTable,Linked List, Trees,Stacks,Queues وغيرها فهي بإختصار شديد جداااااااااااااااااااااااااااً :

معالجة نص لإستخراج نص

php فعلياً لا يتم تحويلها إلى لغة C بمعنى الكلمة وإنما يتم عمل محاكاة للكود وذلك بتنفيذ الـ for للـ for بمعنى معالجة

أما بالنسبة لبناء موقع بلغة C ؟

فلقد بنيت موقع بالكامل على لغة C وجربته وعمل معي لكن المشكلة ليست هنا فأنت ترى مواقع بالملايين تعمل على لغة C ولكنها تحمل الإمتداد example.cgi ..


أمابالنسبة لكونها لغة فأنا كما ذكرت ليس لدي مشكلة إن كانت php هي لغة أم لا ولكن أنا فتحت الموضوع للنقاش حول السؤال الذي راودني ...

لكن لغات السكربت جاءت للتسهيل كما ذكرتم سابقاً فبناء موقع على سي ليس سهل جداً جداً ولكن القصد من موضوعي هذا نقطتين :

1- أن لغات السكربت كما ذكرنا لاتتعدى مرحلة الـ Front-End وهذا يسهل علينا أن نستطيع أن نكتب لغة برمجة من الصفر إذا كانت php لغة برمجة .
2- أن لغات البرمجة القوية مثل Java,C#,C++ وغيرها اليوم تبنى بتقنية الـ BootStrapping وهي إعتماد لغة على لغة بدلاً أن يتم كتابة مرحلة الـ Back-End من البداية وبكذا نستطيع أن نكتب لغة برمجة من الصفر

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


لذلك أنا لدي سؤال هنا أطرحه لجميع من في هذا الموضوع أي من قرأه أو من سيقرأه ..

هل إذا أحد المبرمجين العرب أظهر لغة برمجة فهل سيعترف بها العرب ؟

هذا السؤال يحير الجميع ولكن نريد أن نعرف أراء الجميع .


أستاذ sBForum ترى لا أخفيك أني لم أفهم جملة (لا يمكن بناء معلومة خاطئة على بنية سليمة) ياليت توضحلي أكثر عشان أعرف أجاوب في النقطة المطلوبة فنحن هنا في مكان علم وأنا أتقبل أي شئ و أعجبتني مشاركتك ... شكراً لك

وللبقية حوار ...

تحياتي

أخوكم عبدالله عيد






__________________
قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)
عبدالله عيد غير متواجد حالياً   قديم 22-10-2006, 07:42 PM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Aug 2005-
#16 (permalink)  

عزيزي عبدالله عيد ..

أشكرك على ردك السريع والوافي ....

ما قصدته بتلك العبارة .. أن نقاشك سليم وطرحك مجمله فيه الفائدة وكله صحيح ... لكن ، ما شعرت بأنك لم تصب به هو نفيك لطبيعة PHP بأنها لغة برمجة حقيقية ....... بارك الله فيك ..

بالنسبة لسؤالك : هل إذا أحد المبرمجين العرب أظهر لغة برمجة فهل سيعترف بها العرب ؟

فأنا شخصياً أعتقد أنهم سيعترفون بها ويجعلونها مصدر فخر لهم .. لكن ، ليس هناك مصادر الدعم الكافية لدى العرب ... كما أني لا أعتقد أنه لو بنيت تلك اللغة ستكون بمدى قوة أو جودة اللغات الأخرى ..

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

تحياتي، sBForum






__________________
أحمد أبو النصر
Junior php Developer
+20166196074
أحمد أبو النصر غير متواجد حالياً   قديم 22-10-2006, 10:17 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Mar 2003-
#17 (permalink)  

نقاش حلو وموضوع جميل جداً

لكن اختلف معاك اخي عبدالله في وجهة النظر
PHP هي لغة برمجة حقيقية .. وعشان اكون واضح .. PHP لغة برمجة مواقع حقيقية
اذا كنت تبغى تعمل موقع سواءاً ثابت او تفاعلي .. لا محالة من استخدام الـHTML لأن المتصفح لا يفهم غيرها (مع استثناء الفلاش والتقنيات المساعدة كالجافا اسكربت والـCSS وغيرها)
كذلك الحال مع لغات برمجة التطبيقات او الـDesktop .. فهي مهما رحت ومهما جيت في النهاية الأمر لا يتعدى شفرة أسمبلي
فالمقارنة بينهم ظلم وبهتان
لأن اقصى امكانيات المتصفح عرض النصوص والصور مع بعض حركات الجافا اسكربت وتنسيق الـCSS
اما اقصى امكانيات الكمبيوتر فهي لا نهاية لها من قوة الجرافكس وبرمجة الالعاب الى ما شاء الله
هذا مو تقليل من لغات برمجة المواقع لكن هذه امكانياتها من وجهة نظري .. لاني شايفك ركزت على نقطة مخرجات لغات البرمجة, فاذا تتكلم على المخرجات هذه هي الامكانيات

لكن اذا كنت تتكلم على قوة التفاعل مع المستخدم, فبرمجة المواقع في تحسن مستمر في التفاعل مع المستخدم خصوصاً بعد ظهور الاجاكس, ولا نلوم لغات برمجة المواقع على الضعف في الامكانيات لكن هذا الشئ هو الذي فرضه المتصفح, فإذا كنا نريد نقله نوعيه يجب اننا نشوف حل مع المتصفح ولغته HTML .. اما يغيروها او يعملوا تقنيات قوية يدعموا المتصفح بها, عشان كذا جات الجافا اسكربت والـCSS والاجاكس وغيرها
بصراحة المستقبل مبشر للغات برمجة المواقع .. فلو شفتوا بريد الياهوو الجديد لن تصدقوا ان هذا موقع .. بل برنامج على كمبيوتر .. قوة فظيعة في التفاعل
اما تفاعل مع المستخدم بالنسبة للغات برمجة الكمبيوتر فهي ليست محدوده بحدود معينة كالتي فرضها المتصفح بسبب امكانياته البسيطة, فعندما تبرمج لك الحرية في استخدام كل امكانيات الكمبيوتر! وطير بخيالك بعيييد






__________________
قال عليه الصلاة والسلام:"ليس منا من دعا إلى عصبية وليس منا من قاتل على عصبية وليس منا من مات على عصبية"

# مشاريع:
- الفوائد .. خلاصة العلم والمعرفة
alfawaed.net

العمل بصمت - nawaf.hareeri.net
العملاق غير متواجد حالياً   قديم 23-10-2006, 01:45 AM
رد مع اقتباس
عضو فعال جدا
تاريخ التسجيل: Jun 2003-
#18 (permalink)  

عبدالله عيد اثابكم الله موضوع جدا رائع :::

اقتباس:
تمتاز PHP بمتلاك بنية وقواعد ثابته وواضحة ، معظم قواعدها مأخوذة من كل من C و Java و Perl لصنع لغة برمجة عالية السهولة والسلاسة دون فقدان أي من القوة في اللغة , تمتاز هذه اللغة في السرعة في تنفيذ البرامج على عكس لغات اخرى بالبرمجة ,كما تمتاز بالنواحي الآمنيه التي توفر لك الآمان التام في برنامجك , بدأت لغة PHP كمكتبة دوال تضاف الى لغة Perl لتسهل عمل برامج CGI بلغة Perl، قام Rasmus Lerdof بتحويلها إلى مترجم بسيط وسماه PHP أو Personal Home Pages أي الصفحات الشخصية، فقد كان عبارة عن نسخة مصغرة من Perl مع بعض الميزات الإضافية للويب، وبعد أن اضاف أليها HTML سماها PHP2 ويعد ذلك الاصدار الثاني من هذه اللغة ، عند صدور الاصدار الثاني و ان كان صعب الانتشار لعدم توفير واجهة تطبيقات لتسهل انشارها قام مجموعة من المبرمجين بإضافة واجهة تطبيقات برمجية API لتسهيل عملية انتشارها فكان ذلك نقله نوعية لها و اصبح انتشار هذه اللغة سريع جدا لما تمتاز به من مزايا و يعد الاصدار الثالث النواه الحقيقة لوجود اللغة PHP , اصبحت الـ PHP مرغوبة عند العديد من المطورين حتى تم تطويرها الى الاصدار الرابع و الآن تم تطوير هذه اللغة الى الاصدار PHP5 وبين فترة واخرى نلاحظ تطور هذه اللغة الرائعة .






__________________
إميل سعودي مجاني

htaccess بكل بساطة

الشفرة الموحدة "يونِكود"

(إن من مفاسد هذه الحضارة أنها تسمي الاحتيال ذكاءً، والانحلال حرية، و"الرذيلة فناً" والاستغلال معونة) - مصطفى السباعي
jadweb.com غير متواجد حالياً   قديم 23-10-2006, 05:02 AM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Sep 2005-
#19 (permalink)  

السلام عليكم ،،،
في الواقع لم أكد أريد المشاركة بهذا الموضوع ... لأنني غير متمكن من البي أتش بي ... ولست ضليعاً بلغة سي حتى أتمكن من القاء نظرة على مصدر محرك بي اتش بي ... ولكنني قررت أن أقول ما لدي والله الموفق ...
البي اتش بي لغة برمجة وليست لغة برمجة ... كيف ؟
-ليست لغة برمجة في بعض الأوامر مثل echo وليس الأمر في كل الحالات كذلك ... فلو قلت
echo "marshosh";
فالأمر هو مجرد تصدير لكلمة marshosh من هذا الأمر الى HTML عادي ...
-ولكنها لغة برمجة في كثير من الحالات ... if , do ويكفينا عمليات المقارنة ... فهل يمكننا عمل كل هذا بــ HTML ؟ بالتأكيد لا ... فيمكننا القول أن :
[CENTER] البي أتش بي هي لغة برمجة للغة ترميز [/CENTER]
... فأنت بلغة البي أتش بي تبرمج كود HTML بطريقة أسهل ... كالمثال الذي ذكرت ...
والله أعلم






مرشوش بفليت غير متواجد حالياً   قديم 23-10-2006, 10:49 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2004-
#20 (permalink)  

تحية طيبة للجميع وشكراً لكل من شارك ولو بحرف ...

أستاذ sBForum أن لم أجزم ولم أنفي أن php لغة برمجة ولكن قلت يمكن أن تكون كلمة لغة برمجة هي كلمة مجازية إن صح التعبير ... على العموم ...

الآن اتطرق إلى موضوع الـ Translator . وهو مهم جداً جداً ...

نأتي الآن لقضية أخرى وهي التي تجعلنا ننبهر بما يفعله الغرب (رغم أننا مع الأسف حمقى)...

الآن جميع من يريد بناء مترجم للغة معينة فهو لن يبني سوى الجزء الأول من المترجم وهو Front-End ...؟

كيف ذلك ؟

بما أننا ذكرنا أنه في مرحلة الـ Back-End يتم التحويل إلى Intermediate ثم إلى الأسمبلي ثم التنفيذ ...

الآن المبرمجين عملوا فكرة الـ Translator وهي بعد أن يقوم المبرمج بتأليف لغته الخاصة يقوم بكتابة مرحلة الـ Front-End ثم بعد ذلك يقوم بإحضار مترجم للغة أخرى من المصادر المفتوحة مثلاً ويستخدم اللغة التي تروق له مثل C أو Pascal أو C# أو Java أو C++ ...

طيب وبعدين ...

بعدها يقوم المبرمج بإستخدام إحدى هذه اللغات كـ Intermediat Code لمترجمه أي بإختصار بعد مرحلة الـ Front-End يقوم المبرمج بالتحويل إلى لغة معروفة مثل C , Java,Pascal مثلاً في ملف مؤقت ...

يعني الآن أفرض أنني قمت بكتابة المترجم وأريد التحويل بعد ذلك إلى لغة Java ..

عندها سأبني لغتي الخاصة
بعدها سأذهب وأحضر مثلاً مترجم مجاني للغة جافا وليكن أسمه Java.exe

الآن وليكن مترجم لغتي بإسم abdulah.exe

الآن عندما يشغل أحدهم المترجم مالذي يحدث ؟

يقوم مترجم abdulah.exe بالتحويل إلى ملفات جافا وحفظها في ملفات مؤقتة بإسم مثلاً abdulah.java.temp
بعدها يقوم abdulah.exe بتشغيل Java.exe وتمرير abdulah.java.temp إليه وكل هذا يحدث في الخلفية ...

بعدها يقوم مترجم الجافا بعمل المطلوب واخراج ملف الـ exe الذي تريده وبعدها يظن المستخدم أن لغة abdulah هي التي اخرجت الملف التنفيذي بعد الترجمة ...

الآن لو هناك أحدهم كتب برنامج بلغتي في ملف بإسم example.abdulah فإن ترجمته ستكون كالتالي :

كود:
example.abdulah -> abdulah.exe ->Translate to java -> java.exe -> example.exe
وهذا مايحدث في العالم الآن لذلك الآن بإمكاننا ان نكتب لغة برمجة نؤلفها بسهولة وبعدها نذهب http://sourceforge.net ونحصل على مترجم مجاني لأي لغة وذلك بعد أن نقرر ماهي اللغة التي سنحول إليها مثلاً بعدها نقوم ببناء الـ Front-End وهي المرحلة التحليلية فقط وبعد ذلك أنشئ الحزمة الخاصة بك للتحميل

وبعدها ألف مبروك صار عندك لغة ...

وهذا هو الشئ الذي يعمل عليه العالم الآن ويصدر لنا لغات برمجة بشكل سريع ...

فكل ماتراه الآن هو عبارة عن Translator وليس Compiler في الأصل ...

لذلك الهمة ياشباب ...

وللبقية حوار

تحياتي أخوكم عبدالله عيد






__________________
قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)
عبدالله عيد غير متواجد حالياً   قديم 24-10-2006, 08:47 AM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Sep 2005-
#21 (permalink)  

بخصوص لغة برمجة عربية ... ستنجح لو كانت عربية ... لو كان الكود يكتب بالعربي ... لن تجد أي لغة أخرى تجد شهرتها ... طبعاً عند العرب ... خلال نسخها التجريبية لن يصدق أحد الإقبال عليها ... هل ترى الآلاف الذين يحاولون تعلم البرمجة ؟ هل تجد شيء يردهم غير اللغة ؟ بالتأكيد لا ... فإن حلت العقدة تجاوزوا كل شيء ... ستجد في كل يوم برنامج جديد ... لا يهم كيف ستصدر هذه اللغة ... حتى لو كانت Translator للغة قوية كــ C أو C++ فستبقى حلاً للمشكلة ...


أخي عبد الله عيد ... أضفني hasanmarwan@hotmail.com

وشكراً






مرشوش بفليت غير متواجد حالياً   قديم 25-10-2006, 01:39 AM
رد مع اقتباس
مشرف قسم تطوير المنتديات
تاريخ التسجيل: Mar 2005-
#22 (permalink)  

متابع بشغف ..

معلومات قيمة جدا ...






جواني غير متواجد حالياً   قديم 25-10-2006, 02:33 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Mar 2005-
#23 (permalink)  

حينما تقرأ عنوان الموضوع ومقدمته أنت كمبرمج تنحرق أعصابك لانه بنعت الـ php بأنها لغة برمجة - مجازياً - اذا فهي ليست لغة برمجة إذا فنحن كمبرمجون php لسنا مبرمجون وعبارة عن مصممون على الفرونت بيج أو الدريم ويفر أو أياً من البرامج المتقدمة التي تتعامل مع الـ html ..

ولكن حينما قرأت التعليقات الجميلة والتي شُرح فيها كيفية تعامل الـ php مع أمها الـ C

فاننا نخلص أنها ليست لغة برمجة بالاستفادة من الكلام السابق

ولكن هذا للخبير بلغات البرمجة أمثال الـ C و اخوتها

ولكن لمن لا يفقه هذه اللغات ويتعامل مع الظاهر فقط ؟ فإن الـ php تتعامل له مع السيرفر وتستخلص منه معلومات قد طلبها عن طريق الـ php كمبرمج php ولم يطلبها من الـ C مثلاً .. إذا مبرمج الـ php هل يمكن اعتباره مبرمج C مجازياً أيضاً ؟

الجواب لربما نعم .. ولكن بالرجوع الى الحقائق حينما تضع مبرمج بي اتش بي أمام الـ C سيقف عاجزاً (ان كان لا يفقه سوى الـ php)

ولكن كيف تتعامل الـ asp مع المتصفح أيضا ؟ وكيف تتعامل اللغات الأخرى مع المتصفح أيضاً ..


ولكن طالما انك تتعامل مع الـ php والتي بدورها تتعامل مع الـ C فهي لغة برمجة حقيقياً لا مجازياً لأنها توصلك إلى أوامر الـ C بشكل أو بآخر وانت تتعامل معها ..


هذه وجهة نظري والتي تقبل الخطأ بالطبع ..

بالنسبة لسؤال هل سيتم اعتماد لغة برمجة عربية

فالجواب بدون مكابرة وبدون غرور وبكل بساطه لا

لانه غيرهم كان اشطر خصوصاً بتوفر البرامج والسكريبتات العربية والتي بالرغم من توافرها نتعامل مع البرامج الأجنبية وحتى ولو كانت سرقة X سرقة

ولكن سيتم التعامل مع لغة برمجة عربية حينما تجد مبرمجاً عاقلاً يتعلم بسرعه ، وهذا صعب لأننا تقولبنا على اللغات الأجنبية

ولكن لابد وانه ستظهر لغة برمجة عربية

رغم انني أذكر انني قبل أكثر من سنة دخلت موقع به لغة برمجة عربية حتى أوامرها عربية

ولكنني للأسف لا أذكر هذا الموقع بالطبع ان كان هذا الموقع وهذه اللغة أساساً تعيش حتى الأن

اجمل تحية للجميع وأشكر لمن تحمل فلسفتي في تسمية اللغات

ولنا لقاء






__________________
حينما يموت الحل ... يولد الإبداع
شباب القمر
سجن البرمجة
أحد مستخدمي : MySmartBB
Dr.Nabhan غير متواجد حالياً   قديم 25-10-2006, 05:14 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2004-
#24 (permalink)  

تحية طيبة لجميع من شارك ...

Dr-Nabhan إذا مبرمج الـ php هل يمكن اعتباره مبرمج C مجازياً أ