ساخت سیستم ماژولار؟

faraamarzi

New Member
درود بر شما.
سوالی که چندین ماه است ذهن من را به خودش جلب کرده این است که چگونه میتوانیم یه سیستم بنویسیم تا در آینده بوسیله ماژول سیستم را ارتقا بدیم.
بطور مثال ، چگونه کد:
PHP:
echo '<textbox name="description"></textbox>';
را در کد:
PHP:
<html>
 <body>
  <form action="form.php" enctype="multipart/form-data">
   <input name="te1" type="text">
   <input name="te2" type="text">
   <input type="submit" value="Submit">
  </form>
 </body>
</html>
پس از دو textbox و قبل از Submit button قرار دهیم؟

با تشکر.
 

tabib_m

Member
ميتوني كدش رو كپي و پيست كني :)

گذشته از شوخي
كاملا بستگي داره به برنامه نويسي شما
شما بايد اين برنامه اي كه ميگي رو خلق كني! يعني اين كه طوري نيست كه ما بيايم به شما يك تابع معرفي كنيم كه اين كار رو براي شما بكنه!!

مثلا ميتوني اين كار رو بكني:
در اماكني كه نياز داري ، يك تابع (ساخته ي خودت) رو فراخواني كن، كه كار اون تابع اين باشه كه چك كنه كه آيا كدي بايد در اون مكان (بنا بر ورودي تعيين شده براي تابع) تعيين شده يا نه (مثلا با كمك ديتابيس). در اين صورت كد مورد نظر رو echo كنه...

چندان پيچيده نيست، ولي ممكنه يك سري نكات ريز داشته باشه

موفق باشيد.
 

faraamarzi

New Member
درود بر شما.

از شما متشکرم.

من این کلاس بسیار بسیار ساده را نوشتم:
PHP:
<?PHP
class module{
 function mod($do){
  switch($do){
   case a:
    $result = '<textarea name="description"></textarea>';
    break;
   case b:
    $result = '<input type="file" name="upload">';
    break;
   case c:
    $result = '<input type="checkbox" name="select">';
    break;
  }
   echo $result;
 }
}
$class = new module;
?>
<html>
 <body>
  <form action="form.php" enctype="multipart/form-data">
   <input name="te1" type="text">
   <input name="te2" type="text">
   <?=$class->mod("a")?>
   <input type="submit" value="Submit">
  </form>
 </body>
</html>
روش کار خیلی ساده بود ، فکر نمیکردم آنقدر آسان باشد ، هرچند این کلاس بسیار ساده میباشد.

میشه این دو سوال را نیز جواب بدهید؟

1- اگر دو ماژول متفاوت بخواهند همزمان در یک مکان نمایش داده بشوند ، مشکل پیش می آید. برای رفع این مشکل چکار باید کرد؟
2- شما گفتید ممكنه يك سري نكات ريز داشته باشه. میشه بگید این نکات ریز چه هستند؟ حداقل چند مورد مهم را لطفا ذکر کنید.

با احترام فراوان.
 

tabib_m

Member
خوشحالم كه منظورم رو متوجه شدي :)

نيازي به نوشتن كلاس نبود، فكر ميكنم استفاده از يك تابع ساده ، كافي باشه.

در كل، منظورم از نكات ريز ، در مورد همين جور مشكلاتي كه الان برات پيش اومده بود.
ببين، بهتره به جاي اين كه براي هر result يك كاراكتر تعيين كني، براي هر مكان يك كاراكتر تعيين كني.
بعد ، هر وقت خواستي كدي در اون مكان اضافه بشه، كافيه توي يك جدول در ديتابيس، اون كد رو مخصوص به اون مكان كني:
PHP:
<?php
function mod($placeName){
     $query=mysql_query("select `theCode` from `theTable` where `placeName`='$placeName'");
     if($row=mysql_fetch_row($query)){
           echo $row[0];
     }else{
            return false;
     }
}
?>
حالا اگر اين تابع، اينجوري فراخواني بشه:
PHP:
<html>
 <body>
  <form action="form.php" enctype="multipart/form-data">
   <input name="te1" type="text">
   <input name="te2" type="text">
   <?php
   mod("form1");
   ?>
   <input type="submit" value="Submit">
  </form>
 </body>
</html>
اونوقت php از mysql درخواست ميكنه كه مقدار فيلد theCode از جدول theTable براي جايي كه مقدار فيلد placeName برابر با form1 هست رو بده! يعني كدي كه توي جدول تعيين شده براي مكان form1 . كافيه يك قسمت مديريت براي مديريت اين جدول بنويسي كه به راحتي بتوني تعيين كني كه ميخواي چه كدي در كجاي برنامه ت اضافه بشه و قرار بگيه.

ميتوني خيلي از اين بهينه ترش كني. مثلا كدهاي خاصي قرار بدي براي اماكن مختلف (نه يك مكان) و ...

بستگي به نيازت داره

موفق باشيد.
 

faraamarzi

New Member
درود بر شما.

با تشکر از شما.

بسیار عالی بود.

به هیچ وجه فکر نمیکردم این مشکل چندین و چند ماهه فقط با 5 یا 6 خط کدنویسی حل بشه ، هرچند نیاز به گسترش دارد.

در شروع کار یک کلاس نوشتم ، اما بعد دیدم همانطور که شما گفتید با یک تابع هم میشود این کار را انجام داد ، اما وقتی آمدم کدها را تصحیح کنم برق خانه برای چند دقیقه قطع شد و نتوانستم کارم را ادامه بدهم.

با تشکر از شما.
 

faraamarzi

New Member
درود بر شما.

معذرت میخوام ، مشکلی پیش آمده است.

وقتی کدهای PHP در Database ذخیره شده باشند ، هنگام انجام Query کدها توسط سرور Parse نمیشوند و دیگر نمیتوان به این کدها ماژول گفت!
قبلا در reference وب سایت php.net مشخصات تابعی را خوانده بودم که این کدها را Parse میکرد.
به طور مثال ، در کد زیر متغیر $var در سرور Parse نمیشود ، اما با استفاده از آن تابع میتوانستیم Parse کنیم:
PHP:
<?PHP
     $var = 'echo("Parsing!")';
?>
آیا میتوانید در این زمینه نیز کمک نمایید؟

با تشکر
 

jhoseini

Member
چی شد؟ یعنی چی مخالف قوانین سایت
164.gif
 

جدیدترین ارسال ها

بالا