1- لاحظت مدى تقنين البرمجية ، فلايمكن اضافة كلمة اخرى غير Browse بسهولة ، وايضا لا ادري ان كان " تعميم " الكلمات او " تنوعها " هو من الناحية الايجابية ام السليبة .. سواء عمليا او برمجيا
يعني كونك انت تستخدم مثلا كلمة Browse وغيرك يستخدم كلمة Get وغيرك يستخدم كلمة Show .. في نفس البرمجة او نفس الصفحة ، هل هذه ستكون ميزة ؟ ام انها ستكون عيب ويجب ان يكون الكلام موحد ووفق سياق واحد ؟
امبارح وأنا بلعب بالكلاس عملت شوية تطويرات ، ومن ضمنها كان تعدد الكلمات ، طريقتي كانت في تعيين مصفوفة في الكلاس كالتالي:
كود PHP:
public $cmd = array
(
'browse' => 'select',
'show' => 'select'
);
وبذلك ، أصبحت دالة run كالتالي:
كود PHP:
function run($string){
$this->string = strtolower($string) .' #';
$this->words = $this->wordCut($this->string);
if (!isset($this->cmd[$this->words[0]])) $this->fail(1);
$func = 'iql_'. $this->cmd[$this->words[0]];
if (method_exists($this, $func)) {
$this->$func();
} else {
$this->fail(1);
}
}
مع تعديل اسم الفنكشن من iql_browse إلى iql_select ( استخدام أسماء التعليمات الأصلية للوصول للهدف عن طريق أسماء أخرى ) :
كود PHP:
function iql_select(){
وكذلك قمت بدعم طريقة:
كود:
Browse from 10 to 20 students
عن طريق :
كود PHP:
if ($this->words[1] == 'all') {
$this->limitfrom = $this->limitto = 0;
} elseif ($this->words[1] == 'from') {
$this->limitfrom = intval($this->words[2]);
if ($this->words[3] == 'to') {
$this->limitto = intval($this->words[4]);
}
} elseif ($this->words[1] == 'to') {
$this->limitto = intval($this->words[2]);
}
داخل دالة iql_select ، وطبعاً، معرفين متغيرين في الكلاس :
كود PHP:
public $limitfrom = 0;
public $limitto = 0;
طبعاً انا ما طرحتش التعديلات على شكل كلاس كامل لإني عدّلت حاجات والباقي خرب عشان ترتيب الكلمات وكدا ، فمش ممكن أنزله إلا لما يكون شغال بطريقة صحيحة ..
لكن أعتقد أن صيغة from و to غير مناسبة بهذه الطريقة ، أفكّر في صيغ مفيدة للـ Limit :
كود:
Browse first 10 students
Browse second 10 students
...
تنفع للصفحات ، يعني تمشي صفحة صفحة ..
كود:
Browse students from 10 to 20
بدل الطريقة اللي عملتها أنا، أحس دي مناسبة أكتر ..
كود:
Browse any 10 students
يستخدم Rand في الترتيب ..
كود:
How many/much students?
ممكن لو عايز توسَع أكتر يعني ..
وبرضه:
كود:
Browse 5 students with greatest age
بحيث يعمل Order By Age و Limit
كود:
Browse students without age
بحيث الحقل age فاضي
وايه رأيك يكون في علامات للحقول ، يعني مثلاً [field] لو اتكتب كدا ياخد اسم الحقل زي ماهو ، لو كان بدون [] يشوف اسم الحقل من الكلاس عن طريق الاسم الموجود ..
وممكن تكون الخاصية اختيارية في الكلاس ..
هذا اللي خاطر في بالي الآن ..
ولي عودااات إن شاء الله ..
تحياتي، أشرف السمهوري