Author Archives: بنیامین خلیفه

سفارش ساخت سایت

امروزه استفاده از فضای مجازی و سایت های اینترنتی در بین مردم گسترش یافته است . از طریق سایت های اینترنتی می توان خدمات بسیار گسترده ای را برای مشتریان خود فراهم نمود

شما هم فارق از نوع کسب و کار خود می توانید از این فضا استفاده کنید یک سایت اینترنتی می تواند بسیار برای ما مفید باشد فرض کنید شما دارای یک فروشگاه هستید و با سفارش و ساخت یک سایت فروشگاهی مناسب می توانید به صورت انلاین هم اجناس خود را معرفی و به فروش برسانید .

کاربرد های سایت می تواند بسیار گسترده باشد برای مثالی دیگر یک موسسه آموزشی را در نظر بگیرید که می تواند آموزش ها و کلاس های مجازی و آزمون های آنلاین برگذار کند

تصور کنید برای ثبت نام و ارسال مدارک و پرداخت شهریه موسسه شما هیچ نیازی به حضور فیزیکی شخص نیست و افراد می توانند همه این عملیات را در سایت شما انجام بدهند

تیم برنامه نویسی ما متشکل از یک طراح و دو برنامه نویس با تجربه شش سال فعالیت در زمینه برنامه نویسی ساخت سایت و طراحی اپلیکیشن های مختلف است.

برای سفارش ساخت سایت می توانید با ایدی تلگرام زیر در ارتباط باشید

@Benyaminir

ما در زمینه های طراحی سایت , ساخت اپلیکیشن های مدرن در پلتفرم های ویندوز و mac و ساخت اپلیکیشن های اندروید و ساخت ربات های تلگرام فعالیت میکنیم پس هیچ گونه محدودیتی برای شما وجود نخواهد داشت 🙂

ایمیل : nvioir@gmail.com


قسمت دوم ایجاد صفحه لاگین در فریم ورک yii

به نظر من یکی از موارد جذاب فریم ورک Yii روت و مسیریابی خودکار این فریم ورک هست در این آموزش تنظیمات اولیه  و کار با کنترلر ها  و نمایش پیام به کاربر را یاد میگیریم

اگر به فولدر فریم ورک مراجعه کنید می بینید فولدری به اسم config  می بینید وارد فولدر بشید و فایل db.php را باز کنید . در این فایل اطلاعات دیتابیس را وارد میکنیم

حالا لازمه کمی قسمت route را دستکاری کنیم به مثال زیر توجه کنید وقتی شما فریم ورک yii را نصب میکنید url های آن به این فرمت قابل فراخوانی هستند

http://hostname/index.php?r=site/index

اما ما میخواهیم url هایمان به این شکل مسیر دهی شوند

http://hostname/site/index

براین این کار داخل فولدر config فایل web.php را تغییر میدهیم و کد زیر را

'urlManager' => [
    				'class' => 'yii\web\UrlManager',
    				// Disable index.php
    				'showScriptName' => false,
    				// Disable r= routes
    				'enablePrettyUrl' => true,
    				'rules' => array(
    						'<controller:\w+>/<id:\d+>' => '<controller>/view',
    						'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
    						'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
    				),
    		],

داخل ارایه components آن اضافه کنید و فایل را ذخیره کنید

حالا نحوه کار با کنترلر ها را برسی میکنیم وارد فولدر controllers می شویم و فایل SiteController.php را باز می کنیم می خواهیم تابعی بنویسیم که وقتی url زیر در مرورگر فراخوانی شد عبارت hello در صفحه مرورگر نشان داده شود

http://localhost/site/go

تابه زیر را به کنترلر اضافه می کنیم

function actionGo(){
 echo 'hello';
}

حال اگر به جای چاپ عبارت hello بخواهیم بک صفحه html را لود کنیم ازاین کد به جای echo استفاده می کنیم

return $this->render('say', ['message' =>'hello nitrocode.ir']);

در این کد فایل به اسم say در فولدر view لود می شود  . ما برای مثال یک پارامتر هم به صفحه html خود ارسال کردیم درواقع متغیری به اسم message و با محتوای hello nitrocode.ir را به فایل ارسال کردیم که در انجا می توانیم از این متغیر استفاده یا ان را به کاربر نمایش دهیم در آموزش های بعدی در این مورد بیشتر صحبت خواهیم کرد


قسمت 1 مقدمه شروع کار با فریم ورک Yii

چند وقتی هست که با فریم ورک Yii برای انجام پروژه ای کار میکنم و تصمیم گرفتم آموزش کار با این فریم ورک رو همراه با انجام پروژ خودم بنویسم ( اگر تازه کار هستید و می خواهید php رو تازه یاد بگیرید می تونید تو قسمت نظرات درخواست بدید تا آموزش مبتدی PHP رو هم بنویسیم ) برای درک این آموزش باید آشنایی اولیه با PHP داشته باشید .

اما چرا باید از فریم ورک Yii استفاده کنیم . فریم ورک های زیاد و خوبی برای زبان PHP ساخته شده و Yii یکی از فریم ورک های کامل و نسبتا سریع هست ( از لاراول سریع تر و منابع کم تری استفاده میکند )

در این آموزش ها ما به مرور یک سایت ساده شامل صفحه ثبتنام و ورود را خواهیم ساخت احتمالا اموزش ساخت ربات تلگرام به صورت حرفه ای هم آموزش داده خواهد شد

ابتدا باید فریم ورک را با استفاده از Composer نصب کنیم

اگر Composer روی سیستم شما نصب نیست روی نصب Composer کلیک کنید و آن را از سایت دانلود و نصب کنید

sudo composer create-project --prefer-dist yiisoft/yii2-app-basic basic

با اجرای دستور بالا در cmd ویندوز یا ترمینال لینوکس فریم ورک شروع به نصب میشه شما می توانید به جای کلمه basic اسم پروژه خودتون رو بنویسید برای مثال من اسم nitrocode.ir رو انتخاب میکنم : 

sudo composer create-project --prefer-dist yiisoft/yii2-app-basic nitrocode.ir

پس از نصب به محل نصب فریم ورک مراجعه کنید می بینید که یک فولدر به اسم nitrocode.ir ساخته شده 

بعد از نصب مسیر نصب فریم ورک رو توی مرورگرتون وارد کنید این آدرس برای من به این صورته

http://localhost/test/nitrocode.ir/web

** من فریم ورک رو داخل فولدری به اسم test نصب کردم این آدرس با توجه به محل نصب برای شما ممکنه متفاوت باشه **


تجربه کوتاهی به نام زبان go

Tags :

Category : موارد دیگر

به شخصه بسیار پیگیر اخبار و تغییرات در زبان های برنامه نویسی مختلف هستم معمولا به دنبال زبان های برنامه نویسی بهینه و سریع تر هستم چون سرعت پاسخ گویی سرعت و تعداد درخواست هایی که یک زبان می تواند پاسخ گو باشد بسیار مهمه 

در بنچ مارک های مختلف زبان Go به عنوان یکی از سریع تربن زبان ها معرفی میشه و این منو خیلی وسوسه کرد که یک روز را برای برسی این زبان اختصاص بدم 

من با node.js کارکردم که این زبان هم بعد زبان Go سرعت خوبی داره اما برنامه نویسی با زبان جاوا اسکریپت زمانی که کد های شما زیاد میشه کمی سخت میشه ( کد ها بسیار تو در تو میشن ) برای همین می خواستم زبان گو را هم مورد برسی قرار بدم

شروع کار با زبان گو انقد ها هم بد نبود کمی ساختار شکنی در زبان دیده میشه برای مثال شما در زبان جاوا برای تعریف یک تابع به این صورت عمل میکنید 

public int getCount(){
 return 0;
}

حالا توی زبان گو 

func getCount() int {
 return 0;
}

خب همین طور که مشاهده میکنید جای int با نام تابع جابه جا شده  😕 و از func برای تعریف تابع استفاده شده 

یکی از چیز هایی که در مرحله بعد روی مخ آدم راه میره این ویژگی زبان Go هست که شما از تمام متغییر هایی که تعریف میکنید باید استفاده کنید یعنی یا یک متغییر را نباید تعریف کنید یا اگر تعریف کردید باید ازش استفاده کنید مگرنه با پیغام خطا مواجه می شوید این ویژگی کمی کار تست کد هارا مشکل میکنه 

اما بخش دیگه ای که کلا نظر من رو درباره زبان گو تغییر داد زمانی بود که می خواستم از جیسون استفاده کنم

خیلی عجیب و پیچیده به نظر میومد و همش با خودم میگفتم حتما راه ساده تریم هم برای استفاده از جیسون برای مقایسه توی جاوا اسکریپت به این صورت میشه از جیسوت استفاده کرد

var get = JSON.parse( json );

get.result.list[0].id

حالا توی زبان گو کلا همه چی فرق داره شما قطعا نمی توانید در دو خط کد  به دیتایی که از جیسون میخواهید برسید اول باید تایپ مورد برای جیسون رو دقیقا بنویسید و به نظرم این روندی بسیار زمان بره و برای وب سرویسی که من میخواستم بنویسم که مقدار زیادی جیسون باید استفاده کنم و این فاجعه بود وقتی دیدم زمان زیادی باید برای این مورد اختصاص بدم کلا دور این زبان رو خط کشیدم و به همون node پناه بردم سری که درد نمیکنه رو که دستمال نمی بنده


آموزش استفاده از دیتابیس در اندروید

در ساخت برنامه های همیشه ممکن است نیاز داشته باشیم یک سری از اطلاعات را ذخیره و بازیابی کنیم در برنامه های اندروید راه حل منطقی استفاده از دیتابیس sqlite است .

در این آموزش نحوه استفاده آسان و سریع از این دیتابیس آموزش داده می شود برای شروع کار ابتدا کتابخانه KDB را که کار آن ساده کردن کار با دیتابیس هست را به پروژه خود اضافه میکنیم 

allprojects {
  repositories { 
   ...
   maven { url 'https://jitpack.io' }
  }
}


dependencies {
          ...
         implementation 'com.google.code.gson:gson:2.2.4'
         implementation 'com.github.parsgit:KDB:1.0.1'
	}

در مرحله اول شما باید یک دیتابیس ایجاد کنید برای ایجاد دیتابیس از کد زیر استفاده میکنیم در صورتی که دیتابیس وجود نداشت ایجاد خواهد شد

KDB.init(MainActivity.this,"db_name");

به جای عبارت db_name می توانید نام دلخواه خود را بنویسید

در مرحله دوم باید جدول های( table )  مورد نظر خود را ایجاد کنیم به مثال زیر توجه کنید

KDB.CreateTableQuery createTableQuery=new KDB.CreateTableQuery();
createTableQuery.Table("users")
                .Column("id").INTEGER().KEY_AUTO().Add()
                .Column("name").TEXT().Add()
                .Column("username").TEXT().NULL_ABLE(false).Add()
                .Column("age").INTEGER().DEFAULT(0).Add()
                .Build();

فرض کنید ما میخواهیم اطلاعات یک سری کاربر را که شامل نام و نام کاربری و سن می باشد را ذخیره کنیم پس با کد بالا جدولی به اسم users ایجاد میکنیم جدول users باید داری ستون هایی با نام های id , name , username , age باشد تا بتوانیم اطلاعات را در انها ذخیره کنیم 

توضیح : در این قسمت از کد

 Column("age").INTEGER().DEFAULT(0).Add

ستون age ( سن ) را ایجاد میکنیم و نوع آن را عدد صحبح ( INTEGER )  و مقدار پیش فرض را صفر در نظر گرفته ایم

تا اینجا ما یک دیتابیس به همراه جداول مربوطه ایجاد کردیم حالا نوبت آن رسیده که اطلاعاتی را در دیتابیس ذخیره کنیم برای ذخیره اطلاعات در sql از دستور INSERT استفاده میکنیم

KDB.query("insert into users (name,username,age) values ('beny','nitrocode.ir',24)") .exec();

// یا به صورت زیر عمل میکنیم

JsonObject values=new JsonObject();
        values.addProperty("name","beny");
        values.addProperty("username","nitrocode.ir");
        values.addProperty("age",24);

        KDB.query("insert into users (name,username,age) values (:name,:username,:age)",values)
                .exec();

با استفاده از کتابخانه KDB می توان مقدار پارامتر ها را به صورت جیسون ابجکت یا ارایه لیست ارسال کرد در قسمت دوم کد بالا ما یک متغیر جیسون آبجک با نام values ایجاد کردیم و مقادیر name , username , age را مقدار دهی کردیم .

روش سوم مقدار دهی پارامتر ها به صورت ارایه لیست هست که من خودم بیشتر از این روش استفاده میکنم در کد زیر می توانید نحوه کار را مشادهد کنید

ArrayList<String> params=new ArrayList<>();
        params.add("myname-test");
        params.add("abcd");
        params.add("24");

        KDB.query("insert into users (name,username,age) values (?,?,?)",params).exec();

در روش سوم باید ترتیب ورود اطلاعات را در نظر داشته باشد

SELECT ( بازیابی اطلاعات ثبت شده )

برای فراخانی اطلاعات از دیتابیس از دستور SELECT استفاده میکنیم چند روش مختلف SELECT را مشاهده کنید

JsonArray result = new JsonArray();

// دریافت تمام اطلاعات ثبت شده در جدول
result = KDB.query(" select * from users ").getJsonArray();

//دریافت اطلاعات یک کاربر بر اساس نام کاربری
ArrayList<String> params=new ArrayList<>();
params.add("nitrocode.ir");

result = KDB.query(" select * from users where username = ? ",params);

// دریافت اطلاعات کاربرانی که سنشان بیشتر از 20 سال است
ArrayList<String> params=new ArrayList<>();
params.add("20");

result = KDB.query(" select * from users where age > ? ",params);


 

UPDATE ( ویرایش اطلاعات )

در این مثال فرض میکنیم اطلاعات کاربری به نام علی در دیتابیس ما وجود دارد

// اطلاعات فرضی کاربر در دیتابیس ما
name      : ali
username  : ali156
age       : 18

که ما می خواهیم سن او را که در دیتابیس 18 ثبت شده به 30 تغییر دهیم

JsonObject values=new JsonObject(); values.addProperty("username","ali156"); values.addProperty("age",30);

KDB.query(" update users set age = :age where  username = :username",values).exec();

با اجرای کد بالا اطلاعات کاربر با نام کاربری ali156 جستجو می شود و سن او به 30 تغییر پیدا می کند

DELETE ( حذف اطلاعات )

ArrayList<String> params=new ArrayList<>();
params.add("ali157");

KDB.query(" delete from users username = ? ").exec();

این کد اطلاعات ali را حذف میکند


free open source Node js File Manager

در این پست به معرفی فایل منیجر Node js می پردازیم

زمانی که در حال ساخت ربات تلگرام مدیریت گروه با استفاده از node js بودم برای آپلود فایل های پروژه همین طور اجرا کردنو دیباگ کردن پروژه به مشکل برخوردم و توی اینترنت دنبال یه فایل منیجر مناسب برای پلتفرم node گشتم اما چیز مناسبی پیدا نکردم که هم از نظر امنیتی و کارایی مناسب کار من باشه برای همین خودم دست به کار شدم و یه فایل منیجیر ساختم

کار با این فایل منیجیر خیلی سادست و طراحی خوبی داره به نظر خودم

از قابلیت های این فایل منیجیر میشه به موارد زیر اشاره کرد :

  1. آپلود ساده فایل ها به صورت Drag and Drop
  2. مشاهده فایل ها و فولدر ها با قابیلت حذف یا دریافت فایل ها
  3. مشاهده فایل های جاوا اسکریپت و قابلیت اجرای فایل های nodejs
  4. قابلیت استارت و متوقف کردن و مشاهده برنامه های درحال اجرا
  5. مشاهده لاگ ها و ارور های سرور

لینک : https://github.com/parsgit/node-nitroFileManager


جاوا 10 و ویژگی های جدید آن

جاوا 10 به تازگی منتشر شده است در این پست برخی از ویژگی های جدید این زبان برنامه نویسی محبوب و قدرتمند رو معرفی میکنیم

JDK 10 در تاریخ 20 مارس 2018 منتشر شد . این نسخه پشتیبانی کوتاه مدتی دارد و 6 ماه پشتیبانی خواهد شد نسخه جاوا 11 که در اینده منتشر خواهد شد دارای پشتیبانی بلند مدت خواهد بود (LTS)

جاوا 10 را از کجا می توان دانلود کرد

از سایت اوراکل می توانید برای دانلود نسخه 10 JDK اقدام کنید

ویژگی های جدید و بهبود یافته در JDK 10

( این متن ترجمه شده و اگر دارای کمو کاستی است از شما پوزش می می خواهیم )

Local-Variable Type Inference

این ویژگی جدید زبان است که قرار است جاوا را تقویت کند تا استدلال نوعی را به اعلانات متغییر های محلی گسترش دهد

این ویژگی جدید برای بهبود تجربه توسعه دهندگان و کاهش حجم کد های جاوا انجام شده که توسعه دهنده را از اعلام نوع دقیق متغییر ها بی نیاز می کند مانند نمونه های زیر :

var list = new ArrayList<String>();  // infers ArrayList<String>
var stream = list.stream();          // infers Stream<String>
Consolidate the JDK Forest into a Single Repository

این ویژگی بیشتر برای توسعه دهندگانی که در توسعه JDK شرکت میکنند مفید است و توسعه دهندگان می توانند از یک مخزن واحد استفاده کنند

Garbage-Collector Interface

به نظر نمی رسد که این یک ویژگی جدید باشد این قابلیت هم بیشتر برای توسعه دهندگان JDK مورد استفاده قرار میگیرد

Application Class-Data Sharing

از این ویژگی برای به اشتراک گذاری کلاس ها پیش از پردازش استفاده می شود در برنامه های بزرگ می تواند باعث صرفه جویی در مصرف منابع از 10 تا صدها مگابایت در هر پروسه JVM شود

با تجزیه و تحلیل خدماتی که به صورت cloudless server انجام شده نشان می دهد که بسیاری از آنها چندید هزار کلاس کاربردی را هنگام راه اندازی بارگیری میکنند این ویژگی می تواند این سرویس ها را سریعا راه اندازی کند و زمان پاسخگویی سیستم را بهبود بدهد

برای مطالعه سایر ویژگی های جدید در سایت اوراکل اینجا کلیک کنید


ربات سریع مدیریت گروه تلگرام

 

ربات تلگرام مدیریت گروه با نام دیوار آتش که برای اولین بار با استفاده از پلتفرم جدید و بسیار پرسرعت ساخته شده می تواند بدون کاهش سرعت و کارایی تعداد بسیار زیادی گروه را مدیریت کند

( برای ورود به ربات روی لینک زیر کلیک کنید )

@GroupFireWallBot

ربات مدیریت گروه تلگرام

1. ربات را داخل گروه خود ادمین کنید ( آموزش نحوهی ادمین کردن ربات داخل گروه در منوی آموزش ربات وجود دارد )

2. ارسال دستورات موردنظر برای تنظیم کردن ربات مدیریت گروه ( در ادامه لیست دستورات را مشاهده کنید )

کار با ربات بسیار ساده است و دستورات آن کاملا ساده و هوشمند ساخته شده است برای ارسال دستور به ربات از علامت ! یا $ استفاده میکنیم توجه کنید که دستورا را از داخل گروه خود باید ارسال کنید

لیست دستوارت مدیریت ربات :

!چت محدود
!چت ازاد

!لینک ممنوع
!لینک ازاد

!متن ممنوع
!متن ازاد
!ویس ممنوع
!ویس ازاد

!اهنگ ممنوع
!اهنگ ازاد

!فیلم ممنوع
!فیلم ازاد

!فیلم نوت ممنوع
!فیلم نوت ازاد

!عکس ممنوع
!عکس ازاد

!گیف ممنوع
!گیف ازاد

!فقط فارسی
!فقط انگلیسی
!زبان ازاد

!ریست

!پیشفرض

!اخراج

توضیح دستورات :

دستور چت محدود فش ناسزا و کلمات نا مناسب را در پیام ها و پست های افراد شناسایی و حذف میکند و برای برداشتن این محدودیت دستور چت ازاد را ارسال کنید

بسیاری از دستورات از اسمشان مشخص هست که چه کاری انجام میدهند مثلا اگر دستور لینک ممنوع را ارسال کنید ربات پیام هایی که دارای لینک و ایدی و تبلیغ باشند را حذف می کند برای برداشتن این محدودیت هم دستور لینک ازاد را می توانید ارسال کنید

فیلم نوت همان فیلم های دایره ای هستند 

با ارسال دستور فقط فارسی اعضای گروه شما فقط به زبان فارسی می توانند چت کنند اگر به زبانی مثل انگلیسی چت کنند ربات پیامشان را حذف میکند و اجازه چت کردن نمی دهد دستور فقط انگلیسی هم باعث می شود اعضای گروه فقط به ربان انگلیسی بتوانند صحبت کنند دستور چت ازاد برای برداشت محدودیت فقط فارسی و فقط انگلیسی است

با ارسال دستور ریست تمام تنطیمات و محدودیت های ایجاد شده حذف می شود و می توانید دوباره با ارسال دستورات ربات را تنظیم کنید – دستور پیشفرض قابلیت ضد لینک و ضد فش و ناسزا را فعال میکند

برای اخراج کردن افراد از گروه می توانید از دستور اخراج استفاده کنید روش کار با این دستور به این صورت است که پیام شخصی که می خواهید آن را اخراج کنید را ریپلای می کنید ( پاسخ به پیام ) و سپس دستور !اخراج را ارسال کنید


استفاده از ربات برای 3 روز کاملا رایگان است در این مدت می توانید کارایی ربات را تست کنید و از عملکرد آن مطمئن شوید برای تمدید ربات وارد ربات مدیریت گروه دیوار آتش شوید و منوی مدیریت آسان گروه را نتخاب کنید در صفحه بعد لیست گروه های خودتون رو مشاهده میکنید ( در صورتی که ربات را قبلا در گروه ادمین کرده باشید ) روی نام گروه کلیک کنید حال می توانید ببینید اطلاعات نام و وضعیت ربات برای گروه و مدت زمانی موردنیاز برای تمدید ربات را مشاهده کنید

با کلیک روی تمدید ربات برای گروه شما می توانید ربات را با توجه به نیاز خود تمدید کنید

با کلیک روی منوی دسترسی ادمین ها می توانید لیست ادمین های گروه خود را مشاهده کنید و تایین کنید که کدام یک از ادمین ها بتوانند با ارسال دستورات ربات را کنترل کنند

ربات مدیریت گروه دیوار آتش با هدف کمک به مدیران گروه ها ساخته شده و همواره فعال می باشد اگر دنبال ربات ضد لینک و تبلیغات , ضد فش و ناسزا و با کلی امکانات دیگر میخواهید حتما این ربات را امتحان کنید


کانال اطلاع رسانی ما : https://t.me/NitroCode

ایدی پشتیبانی : https://t.me/nvioir


آموزش نصب نود روی ابونتو 16.04

در این آموزش نود و دیتابیس mongodb  را نصب میکنیم

برای نصب نود کد های زیر را در ترمینال وارد میکنیم

$ sudo apt-get update

$ cd /
$ curl -sL https://deb.nodesource.com/setup_8.x -o nodesource_setup.sh

$ sudo bash nodesource_setup.sh
$ sudo apt-get install nodejs

با این کد ها نود نسخه 8 که نسخه نهایی و LTS را نصب میکنیم نسخه LTS از این جهت اهمیت داره که برای مدت زمان بیشتری پشتیبانی میشه

اما حالا برای نصب دیتابیس mongodb در سیستم عامل ابونتو از کد های زیر استفاده میکنیم

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5

$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list

$ sudo apt-get update
$ sudo apt-get install -y mongodb-org
$ sudo service mongod start
$ sudo systemctl enable mongod

بسیار خب با اجرای این کد ها نسخه 3.6 دیتابیس mongodb که تا این لحظه اخرین و جدیدترین نسخه هست نصب میشه حتما پیشنهاد میکنم کار با این دیتابیسو یاد بگیرید کار باهاش لذت بخشه و دردسر های MySQL رو نداره

دارم برای پروژه ای از node استفاده میکنم و خیلی هیجان زدم میکنه البته بعضی وقتا سینتسک و شیگرایی جاوا اسکریپت برام عجیب به نظر میاد چون مثل بقیه زبون ها نیست در کل هنوز فکر میکنم بهترین زبات برای ساخت سایت php باشه چون کار باهاش خیلی ساده تره البته نظر منه و  node بخاطر سرعتی که داره بیشتر برای ساخت وب سرویس و وب اپلیکیشن ها مناسب باشه :mrgreen:

 

 


آموزش کار با دیستابیس MongoDB

دیتابیس MongoDB از دسته دیتابیس های no sql است کار کردن با این دیتابیس بسیار ساده و لذت بخش است

فایلی به اسم test.js ایجاد میکنیم و برای کانکت شدن به دیتابیس از کد های زیر استفاده میکنیم

const MongoClient = require('mongodb').MongoClient;

MongoClient.connect('mongodb://localhost:27017', function(err, client) {
 console.log('connect');
 // other code
 });

زمانی که اتصال به دیتابیس انجام شد می توانیم عملیاتی مانند Find (select)  , update , insert , …. را انجام دهیم

افزودن اطلاعات به دیتابیس :

const MongoClient = require('mongodb').MongoClient;

MongoClient.connect('mongodb://localhost:27017', function(err, client) {
 console.log('connect');
 // other code
   const db = client.db('db_name');
   const col = db.collection('col_name');

   col.insertOne({name:'nitrocode',url:'nitrocode.ir',age:2,active:true},null,function(err,result) {});

 });

جستجو در دیتابیس :

 col.find({name:'nitrocode'}).toArray(function(err,select) {
console.log(select);
});

کد بالا لیست نتایج یافت شده را به صورت ارایه برمیگرداند حالا یک پرسجوی پیچیده تر انجام میدهیم

 coll.find({$or:[{phone:'091000000'},{age:2}]})
.sort({_id:-1})
.limit(1)
.toArray(function(err,select) {
console.log(select);
});

این پرسجو همانند sql query زیر عمل میکند

select * from `test` where phone='091000000' or age=2
order by _id DESC LIMIT 1

می توانیم از دو عدد 1 یا -1 (منفی یک) در sort استفاده کنیم که یک به صورت صعودی و منفی یک به صورت نزولی عملیات sort را انجام می دهد

عملیات update هم به این صورت انجام می شود

coll.updateOne({_id:code_id},{$set:{active:false}},function() {
 })

در اخر هم می توانید کانکشن دیتابیس را به وسیله کد

client.close()

ببندید

یکی از ویژگی های جالب MongoDB اینه که شما میتونی همزمان با عملیات find اپدیت هم انجام بدید که بهتره داکیومنت کامل رو از سایت MongoDB مطالعه کنیم البته سایتش ip های ایرانو تحریم کردن که دیگه روش دور زدنشو بلدید ://