دوسرا سبق: ریلس پروجیکٹ سیٹ اپ

ابن سعید نے 'روبی آن ریلز' کی ذیل میں اس موضوع کا آغاز کیا، ‏مارچ 1, 2009

لڑی کی کیفیت:
مزید جوابات کے لیے دستیاب نہیں
  1. ابن سعید

    ابن سعید خادم

    مراسلے:
    60,116
    ہم نے پچھلے سبق "ریلس کا تعارف" میں روبی آن ریلس کی چند بنیادی خصوصیات پر طائرانہ نگاہ ڈالی تھی جبکہ اس کی تنصیب کے بارے میں کوئی بات نہیں کی. کیوں کہ ہم نے تجربات کے لئے ہروکو گارڈن کو چنا ہے جہاں آپ کو کم از کم انسٹالیشن کی فکر کرنے کی چنداں ضرورت نہیں رہتی. اگر آپ لوکل مشین پر تجربات کرنے کے خواہش مند ہیں تو روبی آن ریلس کی وکی اور دوسری بے شمار سائٹوں پر انسٹالیشن کے بارے میں معلومات مل جائیں گی. ویسے یہ عام سافٹوئرس کی تنصیب جیسا ہی ہے. اس سبق اور اس کے بعد کے سبھی اسباق میں چیزیں اس انداز میں بتائی جائیں گی جیسے وہ لینکس مشین کی لوکل انسٹالیشن پر کی جا رہی ہوں. اور بعد میں جہاں کہیں مختلف ہوا ہروکو گارڈین کے لئے علیحدہ نوٹ ڈالی جائیں گی.

    آئیے اس سبق میں یہ جانتے ہیں کہ ریلس ایپلیکیشن کی شروعات اور ابتدائی سیٹ اپ کیسے کی جاتی ہے. نیز ریلس پروجیکٹ کا ڈائریکٹری ڈھانچہ کیسا ہوتا ہے.

    سب سے پہلے کنسول (کمانڈ لائن) کھولیں اور یکے بعد دیگرے درج ذیل کمانڈ جاری کریں.
    کوڈ:
    ruby -v
    rails -v
    gem -v
    mysql -V
    یہ کمانڈ ترتیب وار روبی، ریلس، جیم اور مائی ایس کیو ایل کے ورژن کی جانچ کے لئے ہیں. ان سے اس بات کا تیقن ہو جائے گا کہ یہ بنیادی ضرورتیں مشین میں نصب ہیں. مائی ایس کیو ایل کے بجائے اگر آپ کوئی دوسرا ڈاٹابیس استعمال کرنا چاہتے ہیں تو ریلس کو کوئی اعتراض نہیں.

    اب کنسول میں ڈائریکٹری تبدیل کر کے اس جگہ جائیں جہاں آپ اپنا پروجیکٹ رکھنا چاہتے ہیں.
    کوڈ:
    cd /desired/directory/path/to/application
    فرض کرتے ہیں کہ blog نام سے ایپلیکیشن بنانا ہے. درج ذیل کمانڈ ایک ریلس پروجیکٹ کی مکمل بنیاد رکھ دیگا.
    کوڈ:
    rails blog
    rails blog -d mysql
    یہ دو نہیں بلکہ ایک ہی کمانڈ کی دو مختلف شکلیں ہیں جن کے اثرات تھوڑے سے اختلاف کے ساتھ یکساں ہیں. آئیے انھیں سمجھنے کی کوشش کرتے ہیں. پہلی سطر کا مطلب ہے blog نام سے ایک عدد پروجیکٹ rails کی مدد سے تیار ہو. اور یہ کمانڈ کسی جادوئی چھڑی کی طرح کن فیکون کا اثر رکھتی ہے. اور ایک مخصوص ترتیب سے بیسیوں فائلیں اور اور فولڈر موجودہ ڈائریکٹری کے تحت blog نام کے فولڈر میں وجود پا جاتی ہیں. دوسرے کمانڈ میں d سوئچ کا اضافہ کیا گیا ہے جو کہ database کا مخفف ہے اور اس کے بعد mysql تحریر کیا گیا ہے. اس اضافی حصے کا مطلب یہ ہوا کہ ہم ریلس کو بتا رہے ہیں کہ اس ایپلیکیشن میں ڈاٹا بیس انجن کے طور پر mysql کو استعمال کیا جانا ہے. یقیناً آپ اس جگہ کسی اور ڈاٹا بیس انجن کا نام بھی لکھ سکتے ہیں جو کہ آپ کی موجودہ مشین یا کسی ریموٹ مشین میں نصب ہو اور قابل رسائی ہو.

    اگر آپ کو یاد ہو تو پچھلے سبق میں ہم نے جانا تھا کہ ریلس میں اکثر ڈاٹا بیس بیکڈ ایپلیکیشن ہی بناتے ہیں. اس کا یہ مطلب ہرگز نہیں کہ پہلے کمانڈ سے تخلیق شدہ پروجیکٹ کسی ڈاٹا بیس کنکشن کے بغیر ہوگا. اگر آپ کو یاد ہو تو ریلس کے فیچرس میں ایک بات "کنوینشن اوور کنفیگیوریشن" کے متعلق بھی کہی گئی تھی. یعنی ریلس میں اکثر چیزیں کوئی نہ کوئی طے شدہ قدر رکھتی ہیں اور طے شدہ ڈاٹا بیس SQLite ہے. یعنی بغیر ڈاٹا بیس کا نام بتائے کوئی ایپلیکیشن تیار کی گئی تو اس میں SQLite سے کنکشن بنانے کے لئے اندراجات ملیں گے. اس کا اثر ایپلیکیشن میں موجود ایک اکلوتی فائل config/database.yml میں ہی دیکھنے کو ملے گا. ضرورت پڑنے پر اس میں ڈاٹا بیس یوزر نیم اور پاسورڈ درج کرنی پڑ سکتی ہے. اسے بعد میں تبدیل کرکے ایپلیکیشن کو کسی دوسرے ڈاٹا بیس انجن سے بھی منسلک کیا جا سکتا ہے. اس فائل پر مزید گفتگو آئندہ اسباق میں کریں گے.

    جیسا کہ آپ نے نوٹس کیا ہوگا کہ آپ کی حالیہ ڈائریکٹری میں blog نام سے ایک عدد نئی ڈائریکٹری وجود میں آچکی ہے. آئیے اس ڈائریکٹری میں داخل ہوتے ہیں یعنی تازہ ترین بنے پروجیکٹ میں قدم رکھتے ہیں.
    کوڈ:
    cd blog
    اگر آپ اس ڈائریکٹری کے اندراجات دیکھنا چاہتے ہیں تو.
    کوڈ:
    ls
    ls -R
    یوں تو پہلی کمانڈ حالیہ ڈائریکٹری میں پہلی سطح پر موجود فائلوں اور فولڈرس کو فہرست کرنے کے لئے کافی ہے لیکن آپ مزید گہرائی تک جانا چاہیں تو ریکرسیو لسٹنگ (Recursive Listing) کے لئے دوسری کمانڈ کا استعمال کر لیں.

    اب آئیے پہلی سطح پر موجود فائلوں اور اور فولڈرز کا جائزہ لیتے ہیں. لیکن ایک منٹ!

    کیا آپ جانتے ہیں کہ آپ کے ایپلیکیشن کی نہ صرف یہ کہ بنیاد پڑ چکی ہے بلکہ وہ آپ کو اپنی شکل دکھانے کے لئے بے تاب ہے. اس کے رخ تاباں سے نقاب الٹنے کے لئے اس کی دھڑکن اور تنفس جاری کریں.
    کوڈ:
    ruby script/server
    یہ کمانڈ اس ایپلیکیشن کے ڈیڈیکیٹیڈ سرور کو زندہ کر دیگی جو کہ localhost پر پورٹ نمبر 3000 کے تحت چل پڑے گا. یقین نہیں آتا؟ براؤزر کھولیں اور دیکھیں.

    http://localhost:3000

    ویلکم پیج آپ کا منہ چڑا رہا ہوگا.

    [​IMG]

    اگر ایکسائٹمینٹ بڑھ جائے تو ایک گلاس ٹھنڈا پانی پئیں اور فائلوں اور فولڈرز کے تعارف کی طرف قدم بڑھائیں.

    [table="head"]نمبر شمار|فائل/فولڈر|مقصد
    1|README|ایپلیکیشن کا مینول جس میں سیٹ اپ، اور مخصوص اطلاعات لکھی جاتی ہیں تاکہ بعد میں اس ایپلیکشن پر کام کرنے والوں کے لئے چراغ راہ ہوں۔
    2|Rakefile|اس فائل میں کچھ ایسے فنکشن لکھے جاتے ہیں جو عموماً بیک اینڈ پراسیس ہوتے ہیں اور کبھی کبھار کنسول سے چلانے ہوتے ہیں۔
    3|app/|ماڈل، ویو اور کنٹرولر کی تمام فائلیں اس ڈائریکٹری میں موجود ہوتی ہیں۔ اور ہمارے آئندہ اسباق کا مرکز زیادہ تر یہی ڈائریکٹری ہوگی۔
    4|config/|ایپلیکیشن کی بیشمار ترتیبات، راؤٹنگ، ڈاٹا بیس وغیرہ سے متعلق فائلیں اس ڈائریکٹری میں ہوتی ہیں۔
    5|db/|حالیہ ڈاٹا بیس کا اسکیما اور مائگریشن فائلیں یہاں ہونگی۔ جی نہیں آپ نے مائگریشن کو ٹھیک سے ہیں جانا۔ مائگریشن پر تفصیلی گفتگو آئندہ اسباق میں۔
    6|doc/|پروجیکٹ کی مفصل ڈاکیومینٹیشن۔
    7|lib/|پروجیکٹ میں اضافی ماڈیولس کا گوشہ۔
    8|log/|لاگ فائلس۔ جی ہاں ڈیویلپمینٹ اور پرفارمینس بہتر کرنے کے لئے انتہائی ضروری۔
    9|public/|ایپلیکیشن کی واحد ڈائریکٹری جسے خارجی دنیا ڈائریکٹ ایکسس کر سکتی ہے۔ اس میں اسٹائل شیٹ، جاوا اسکرپٹ، تصاویر اور دوسرے ملٹی میڈیا مواد رکھے جاتے ہیں۔
    10|script/|یہ ریلس ایپلیکشن کا دل ہے جہاں کئی دھڑکنے والی چیزیں پائی جاتی ہیں۔ اول تو ویب سرور اس کے علاوہ ریک، انسٹالر، جنریٹر، بینچ مارکنگ، کنسول اور ڈاٹا بیس کنسول وغیرہ۔
    11|test/|ٹیسٹنگ سافٹوئیر ڈیویلپمینٹ کی ضرورت ہے جب کہ ریلس میں یہ چیز تفریح بھی ہے۔ جی ہاں ساری ٹیسٹ اسکرپٹس یہاں۔
    12|tmp/|غیر مستقل فائلوں کا مسکن مثلاً سیشن وغیرہ سے متعلق فائلیں۔
    13|vendor/|یہاں تھرڈ پارٹی لائبریریز، جیمس، پلگ انز اور بعض حالات میں ریلس از خود یہاں موجود ہوتا ہے۔
    [/table]

    اوہ میں تو یہ بھول ہی گیا تھا کہ لوکل انسٹالیشن نہ ہونے کے باعث آپ یہ تجربات کرنے سے قاصر ہونگے. خیر کوئی بات نہیں آئیے ہروکو گارڈین چلتے ہیں. کیا آپ کو اپنا ای میل اور پاسورڈ یاد ہے؟ اور آپ کے پاس فائرفاکس براؤزر موجود ہے؟
    امید ہے کہ یہ سبق عام فہم، اوسط درجہ ضخیم اور کسی قدر مفید ہوگا. اس پورے ہفتے اس سبق پر سوال و جواب کی شکل میں گفتگو جاری رہے گی. ان شاء اللہ آئندہ ہفتے ہم اسکفولڈ جنریٹر کا جادو دیکھیں گے.

    ***

    اس موضوع پر گفتگو، سوال و جواب اور تبصرے یہاں کریں۔

    پچھلا سبق | اگلا سبق
     
    • پسندیدہ پسندیدہ × 8
  2. ابن سعید

    ابن سعید خادم

    مراسلے:
    60,116
    • پسندیدہ پسندیدہ × 1
  3. ابن سعید

    ابن سعید خادم

    مراسلے:
    60,116
    فرہنگ:

    احباب سے مختصر گفتگو کے بعد شامل کیا جائے گا۔
     
لڑی کی کیفیت:
مزید جوابات کے لیے دستیاب نہیں

اس صفحے کی تشہیر