Email: info@developit.ir
نمایش ۱ تا ۲۰ مورد از کل ۲۵ مورد.

آشنایی با Docker Hub

Docker Hub یکی از سرویس های docker است که امکان اتصال به مخازن، ساخت و تست image، ذخیره سازی image و اتصال به Docker Cloud برای توسعه image ها داخل هاست شخصیتان را فراهم میکند.

Docker Hub یک منبع متمرکز برای جستجوی image ها، توزیع، مدیریت، همکاری تیمی و راه اندازی گردش کاری برای توسعه دهندگان را ایجاد کرده.

امکانات کلی Docker Hub به شرح زیر میباشد:

Image Repositories: یافتن image ها از انجمن یا کتابخانه های رسمی.

Automated Builds: ایجاد خودکار image های جدید زمانی که شما تغییری در منبع اعمال میکنید.

Webhooks: یک ابزار برای خودکار کردن Build ها. Webhooks امکان اعمال trigger بعد از push موفقیت آمیز داخل مخزن را فراهم میکند.

Organizations: ساختن گرو های کاری و مدیریت دسترسی ها برای مخازن.

docker-hub

به دو روش میتوانید در مخازن عمومی و image ها جستجو کنید. روش اول استفاده از قسمت جستجوی وبسایت Docker Hub و روش دوم استفاده از ابزار command line و دستور docker search است. به عنوان مثال اگر به دنبال image یکی از توزیع های لینوکس میگردین باید از چنین دستوری داخل command line استفاده کنید:

$ docker search ubuntu

هر دو روش لیستی از مخازن عمومی موجود در Docker Hub را به عنوان نتیجه نشان میدهد.

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

Docker Hub شامل تعداد زیادی Official Repositories میباشد. این مخازن رسمی کاملا عمومی و تایید شده هستند که میتوانید از آنها برای ساخت service ها و application های خود استفاده کنید.

Docker Hub محلی برای ساخت و راه اندازی image هایتان فراهم کرده. شما میتوانید به دو روش مخازن خود را پیکره بندی کنید:

Repositories: امکان push کردن image ها از کامپیوتر شخصی خود داخل Docker Hub را فراهم میکند.

Automated Builds: کد منبع و trigger را بهم متصل میکند تا هنگام تغییرات، بازسازی image فراهم شود.

شما میتوانید مخازن عمومی بسازید تا تمام کاربران به آنها دسترسی داشته باشند یا مخازن خصوصی همراه با محدودیت دسترسی تعریف کنید.

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

 

بررسی تفاوت Docker و VM

Docker یک بستر باز برای توسعه دهنگان است و امکان ایجاد، توسعه و اجرای application ها را بسیار آسان میکند. این موارد با استفاده از container ها فراهم میشود.

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

VM به طور گسترده در سرور های پردازش ابری مورد استفاده قرار میگیرد. VM برای استفاده ی موثر و امن application ها در محیطی پایدار، یک سیستم عامل کامل را load میکند.

میتوان گفت Docker Container پتاسیل بسیار بالاتری نسبت به Virtual Machine دارد. Docker Container هسته سیستم عامل و کتابخانه های application را به اشتراک میگذارد. در حالی که ماشین های مجازی VM از منابع اختصاص داده شده خود استفاده میکنند.

VM-Diagram

container سرباری کمتری نسبت به vm دارد و به طور کلی کارایی application ها در container برابر یا بهتر از اجرای آن در vm میباشد.

ممکن است عملیات ایجاد و راه اندازی vm چند دقیقه طول بکشد در حالی که برای container این عملیات کمتر از یک ثانیه انجام میشود. application در حال اجرا داخل یک container میتواند تا دو برابر سریعتر از نمونه خود داخل vm عمل کند.

Docker تحولی بزرگ برای توسعه دهنگان است، اجرای app ها روی Docker و deploy آن در توزیع های مختف لینوکس، Cloud یا محیط های تست در کمترین زمان ممکن اکنون فراهم شده.

VM انعطاف پذیری بالایی دارد در حالی که Docker نخست بر application ها، قابلیت حمل و وابستگی هایشان تمرکز کرده و همین موضوع باعث شده توسعه دهندگان سریعتر نتیجه ی کار خود را به مرحله ی production برسانند در نتیجه نمیتوان گفت Docker توسعه داده شده تا جایگزینی برای VM باشد.

 

درس های yii2 شماره 11: کنترل سطح دسترسی، Access Control

کنترل سطح دسترسی با احراز هویت framework ادغام شده تا اجازه یا محدود کردن دسترسی ها به امکانات و صفحات یک وبسایت را فراهم کند.

اگر تا کنون از access control استفاده نکرده اید، کد شما به همه اجازه دسترسی را خواهد داد حتی کاربرانی که login نشده اند!

با استفاده از access control در yii2 میتوان مطمئن شد کاربران قبل از دسترسی به امکانات یا صفحات وبسایت login کرده اند.

همچنین yii2 امکان مدیریت پیشرفته تر و پیچیده تری هم با عنوان RBAC ارائه میکند که بعدا بیشتر در مورد آن خواهم نوشت... . با استفاده از RBAC میتوان سلسله مراتب پیچیده ای از مجوز ها تعریف کرد مانند مجوز برای فعالیت هایی که ممکن است در application شما انجام شود.

به طور پیشفرض access control در yii2 دارای دو نقش(roles) میباشد. نقش مهمان یعنی کسی که هنوز login نکرده که با '?' نشان داده میشود و نقش احراز هویت شده یعنی کسی که در سایت login کرده و با '@' مشخص شده است.

با این دو نقش فقط میتوانیم دسترسی به صفحات یا action ها را محدود کنیم بر اساس اینکه کاربر login شده یا خیر و اگر login نبود میتوان آن را به صفحه ی ورود هدایت کرد.

بیشتر بخوانید

فشرده سازی درخواست ها در elasticsearch

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

ممکنه درخواست های زیادی هم سمت سرور ارسال بشه و چقدر خوبه این درخواست ها به نحوی فشرده و کوچکتر بشن تا انتقال اطلاعات سریعتر انجام بشه مخصوصا داخل elasticsearch که به صورت real time کار میکنه.

به این منظور مشغول پیاده سازی ماژول msgpack برای elasticsearch شدم اما زمانی که ازش استفاده کردم دو مشکل وجود داشت:

1) افت کارایی، نه به خاطر encode/decode کردن JSON. به این دلیل که اصل scripting در elasticsearch کاهش سرعت رو به همراه داره مخصوصا زمانی که کد شما قرار هست به ازای هر درخواست اجرا بشه.

2) منسوخ شدن برخی از روش های scripting در آینده، مخصوصا javascript! ظاهرا scripting در نسخه های بعدی دچار تغییرات زیادی خواهد شد در حدی که elastic.co پیشنهاد میکنه از painless scripting language استفاده کنیم.

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

اگر از http module استفاده میکنید، elasticsearch از فشرده سازی در صورتی که ممکن باشد با استفاده از Accept-Encoding پشتیبانی میکند. مقدار http.compression در بخش network settings به طور پیشفرض true است. سطح فشرده سازی درخواست ها در elasticsearch قابل تغییر است. سطوح فشرده سازی از 1(حداقل فشرده سازی) شروع شده و نهایتا تا 9(حداکثر فشرده سازی) قابل تغییر میباشد. در network settings فشرده سازی روی سطح 3 تنظیم شده با این وجود میتوانید مقدار آن را با استفاده از http.compression_level کم یا زیاد کنید.

JWT، مقدمه ای بر JSON Web Tokens

JSON Web Token چیست؟

JSON Web Token یا JWT یک استاندارد فشرده و جامع برای انتقال امن اطلاعات بین چند زبان یا محیط مانند JSON است.

JWT میتواند با استفاده از الگوریتم HMAC یا کلید های عمومی/خصوصی بوسیله ی RSA رمزنگاری شوند.

برخی از مفاهیم JWT به شرح زیر میباشد:

1) فشرده/Compact: از آنجایی که حجم اطلاعات کمتر میشود، JWT میتواند از طریق URL ارسال شود. به عنوان مثال ارسال اطلاعات با استفاده از پارامتر POST یا قرار دادن آنها داخل HTTP header.

کاهش حجم اطلاعات به معنی انتقال سریعتر نیز میباشد.

2) جامع/Self-contained: این بسته شامل تمام اطلاعات مورد نیاز در مورد کاربر و اجتناب از درخواست بیش از یک بار به پایگاه داده است.

چرا باید از JSON Web Tokens استفاده کنیم؟

1) احراز هویت: به طور معمول برای استفاده ازJWT  هنگام ورود کاربر به سیستم این کار انجام میشود. احراز هویت به کاربر اجازه ارسال درخواست، دسترسی به خدمات و منابع را میدهد. احراز هویت تنها یک ویژگی است که به طور گسترده در JWT استفاده میشود زیرا سربار کمی دارد و میتوان از آن به آسانی در حوزه های مختلف بهره برد.

2) تبادل اطلاعات: JWT یک روش بسیار خوب برای انتقال امن اطلاعات بین محیط های مختلف است زیرا به عنوان مثال با استفاده از کلیدهای عمومی و خصوصی رمزنگاری شده و دارای امضای دیجیتال میباشد در نتیجه شما میتوانید مطمئن باشید چه کسی اطلاعات را برای شما ارسال میکند. علاوه بر این میتوانید بررسی کنید محتوای ارسال شده دستکاری نشده باشد.

بیشتر بخوانید

MessagePack، فرمت تبادل اطلاعات(سریعتر و سبکتر)

MessagePack یک فرمت مبادله اطلاعات کارامد است که به شما اجازه تبادل اطلاعات بین چندین زبان را میدهد، دقیقا مانند JSON. در حالی که MessagePack سریعتر و سبکتر است. این دو مزیت با فشرده سازی اطلاعات توسط MessagePack فراهم شده.

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

MessagePack

msgpack 

MessagePack توسط بیش از 50 زبان برنامه نویسی پشتیبانی میشود و مزیت دیگر ان سهولت استفاده از کتابخانه های این فرمت است.

<?php
$data = array(0=>1,1=>2,2=>3);
$msg = msgpack_pack($data);
$data = msgpack_unpack($msg);

 

 

 

نوشتن کد غیر همزمان در PHP با استفاده از icicle

PHP به طور معمول از روش برنامه نویسی همزمان استفاده میکند، با این وجود میتواند برای ایجاد برنامه هایی با زمان اجرای طولانی هم مورد استفاده قرار گیرد. چنین برنامه هایی اغلب باید فورا تعداد بسیاری وظیفه/task را بدون مسدود شدن وظایف انجام دهند.

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

Icicle یک کتابخانه PHP است برای تسهیل نوشتن کد غیر همزمان با استفاده از روش برنامه نویسی هم زمان.

نوشتن و خطایابی کد غیر همزمان به دلیل اینکه متکی به callback توابع هستیم و عموما نمیتوان مقادیر یا throw exceptions را بازگرداند مشکل است.

یکی از بسته های قابل استفاده در icicle، بسته HTTP است که به منظور راه اندازی یک HTTP/1.1 server و client غیر همزمان استفاده میشود.

مانند سایر component های icicle، این کتابخانه هم از coroutines ساخته شده توسط awaitables و generators برای پیاده سازی برنامه نویسی غیر همزمان استفاده میکند.

 

بیشتر بخوانید

درس های yii2 شماره 10: پیکره بندی nginx برای yii2 advanced

به منظور پیکره بندی nginx برای yii2 مراحل زیر را باید انجام دهید:

1) برای backend پیوند نمادین(symlink) ایجاد کنید.

cd /path/to/project/frontend/web
ln -s ../../backend/web backend

2) frontend/config/main.php نیاز به تغییر دارد.

....
    'components' => [
        ....
        'request'=>[
            'baseUrl'=>'',
        ],
        'urlManager'=>[
            'scriptUrl'=>'/index.php',
        ],
        ....
    ],
بیشتر بخوانید

درس های yii2 شماره 9: اضافه کردن application های بیشتر

در قالب advanced به طور پیشفرض frontend از backend جدا شده. با این وجود شاید برایتان کافی نباشد و مثلا نیاز به application دیگری با عنوان blog داشته باشید.

برای اضافه کردن application جدید مراحل زیر را انجام دهید:

1) از frontend کپی گرفته و نام آن را به blog تغییر دهید، این کار را برای environments/dev/frontend و environments/prod/frontend نیز انجام دهید(کپی و تغییر نام به blog).

2) در application جدیدی که ایجاد کردین تمام namespace های frontend را به blog تغییر دهید.

3) در common\config\bootstrap.php کد زیر را اضافه کنید:

Yii::setAlias('blog', dirname(dirname(__DIR__)) . '/blog');

4) در خط فرمان از دستور php init استفاده کنید و فقط توجه داشته باشید که اگر قبلا پروژه را init کرده اید نباید دوباره frontend و backend را initialize کنید(در هنگام init به شما اخطار داده میشود که میتوانید جلوی سوال پرسیده شده در خط فرمان no را تایپ کنید) 

Elasticsearch-Hadoop، جستجو و تحلیل real time دادهای Hadoop

در کنار داده های بسیار زیادی که در hadoop دارید میتوانید یک موتور جستجو و تحلیل گر real-time هم داشته باشید.

با استفاده از کتابخانه هایی که elasticsearch برای این موضوع آماده کرده امکان اتصال hadoop و elasticsearch فراهم شده است.

با ادغام elasticsearch و یکی از component های hadoop داده ها به طور مستقیم در elasticsearch شاخص گذاری(index) میشوند و همچنین میتوان از HDFS به عنوان یک archive بلند مدت برای elasticsearch استفاده کرد.

در hadoop امکان جستجو یا تجزیه و تحلیل محتوا وجود دارد اما سریع ترین روش نیست. ES-Hadoop با فراهم کردن شاخص گذاری داده های hadoop در elasticsearch سریعتر از همیشه این کار را انجام میدهد.

قابلیت ادغام با محبوب ترین component های hadoop وجود دارد، hadoop پیوسته در حال توسعه است و ES-Hadoop با component های برگزیده و محبوب آن تعامل دارد و خواهد داشت.

برای data visualization(مصورسازی داده ها)  elasticsearch از kibana استفاده میکند.

مدیریت اشخاصی که به اطلاعات شما دسترسی دارند و جلوگیری از جاسوسی برای حفظ محرمانگی اطلاعات انجام میشود. امنیت ES-Hadoop شامل احراز هویت HTTP، پشتیبانی از SSL/TLS برای ارتباط بین elasticsearch و hadoop clusters، کار کردن با Kerberos فعال در hadoop و X-Pack قابل استفاده در elasticsearch cluster میشود.

و در آخر، با هر گونه از توزیع های hadoop مانند Cloudera، Mapr، Hortonworks، Databricks و ... به خوبی کار میکند.

اصطلاحات پایه در elasticsearch

تعدادی اصطلاح در elasticsearch وجود دارد که دانستن آنها در ابتدا به فرایند یادگیری بسیار کمک میکند.

 Near Realtime (NRT)

 elasticsearch یک بستر جستجوی نزدیک به زمان واقعی است، به این معنی که از زمان شاخص گذاری یک سند تا قابلیت جستجو در آن تاخیر کمی وجود دارد(معمولا یک ثانیه).

cluster

یک cluster مجموعه ای از یک یا چند node است(server) که با هم تمام اطلاعات را نگه داشته و شاخص گذاری و قابلیت جستجو را در بین تمام node فراهم میکنند.

node

یک node یک server تکی و قسمتی از cluster میباشد. که در ذخیره سازی داده های خود و شاخص گذای و فراهم کردن قابلیت جستجو شرکت میکند.

index

یک index مجموعه ای از document است که تا حدودی دارای ویژگی های مشابهی هستند، به عنوان مثال شما میتوانید یک index برای اطلاعات مشتریان، یک index از فهرست محصولات و یک index از اطلاعات سفارشات داشته باشید.

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

در یک cluster تکی شما میتوانید هر چقدر index نیاز دارید تعریف کنید. 

بیشتر بخوانید

elasticsearch چیست؟ آموزش نصب elasticsearch در لینوکس


elasticsearchelasticsearch، یک موتور جستجو و تحلیلگر توزیع شده است که برای تعامل با آن از restful api استفاده میکنیم.

قالب ارسال و دریافت اطلاعات در این موتور جستجو json میباشد.

اولین نسخه از elasticsearch در سال 2010 عرضه شد و در حال حاضر نسخه 5.0.1 آن هم در دسترس میباشد.

elasticsearch  با جاوا توسعه داده شده، یک پروژه متن باز است و تحت مجوز ASL منتشر شده.

 

بیشتر بخوانید

درس های yii2 شماره 8: login و دسترسی به قسمت backend

قبلا در مورد قالب های yii2،  پیکره بندی پایگاه داده و database migration توضیحاتی داده ام که لازم است قبل از مطالعه این درس ابتدا به هر سه موضوع سَری بزنید.

اگر از قالب advanced استفاده میکنید و تصمیم دارید وارد قسمت backend فریم ورک شوید(قسمتی که به طور معمول جهت پیاده سازی بخش مدیریتی پروژه از آن استفاده میشود) متوجه خواهید شد که نیاز به لاگین دارید.

http://localhost/advanced/backend/web/index.php?r=site%2Flogin

در درجه اول شما تا کنون هیچ نام کاربری در پروژه نساختید و حتی اگر بخواهید این کار را انجام دهید(قسمت signup که لینک آن در بخش frontend، منوی بالای صفحه است) با خطای "جدول user وجود ندارد" مواجه خواهید شد.

http://localhost/advanced/frontend/web/index.php?r=site%2Fsignup

برای حل این موضوع و دسترسی به قسمت backend پروژه باید مراحل زیر را طی کنید:

- پیکره بندی پایگاه داده را انجام دهید.

- داخل پروژه ابزار خط فرمان را باز کرده و دستور yii migrate را اجرا کنید. با اجرای این دستور migration مقدار دهی اولیه شده و جدول user هم ساخته خواهد شد.

- روی لینک signup که در منوی بالای قسمت fronend وجود دارد کلیک کنید و یک کاربر جدید بسازید.

- بعد از ایجاد کاربر به طور خودکار login میشود، در همان منو لینک logout و login هم وجود دارد.

درس های yii2 شماره 7: database migration

 در زمان توسعه یک نرم افزار پایگاه داده محور، ساختار پایگاه داده درست مثل سورس نرم افزار توسعه پیدا میکند...

به عنوان مثال، در هنگام توسعه نرم افزار ممکن است به یک جدول جدید نیاز پیدا کنید یا پس از اتمام پروژه و ارائه نسخه ی پایدار آن شاید به این نتیجه برسید که اضافه کردن شاخص(index) به ساختار یک جدول باعث بهبود کارایی نرم افزارتان میشود و...

از آنجایی که معمولا با اینگونه تغییرات باید کمی سورس نرم افزار را هم تغییر دهید yii از database migration پشتیبانی میکند.

migration در yii این امکان را به شما میدهد تا بتوانید یک migrate جدید ایجاد، اعمال، بازگردانی یا اعمال مجدد کنید. نتیجه ی تمام migrate های ایجاد شده تاریخچه ای از توسعه ی دیتابیس شماست که میتوانید ساختار و گاهی محتوای اندکی از دیتابیس را همیشه در کنار نرم افزار خود داشته و به آسانی آن را مدیریت کنید.

تمام این امکانات از طریق خط فرمان(command line) قابل استفاده هستند، میتوانید برای مشاهده توضیحات migration در خط فرمان از دستور

yii help migrate

استفاده کنید.

بیشتر بخوانید

درس های yii2 شماره 6: تولید خودکار کد با استفاه از Gii

gii ابزاری در yiiframework است که با استفاده از آن میتوان امکانات متداول/رایج وبسایت را به سرعت ایجاد کرد.

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

ایجاد، خواندن، بروزرسانی و حذف(Create, read, update and delete) که به اختصار CRUD نیز خوانده میشود چهار عملکرد اساسی مدیریت داده ها در برنامه نویسی هستند. که ممکن است در همه یا بیشتر بخش های یک وبسایت مورد نیاز بوده و تکرار شده باشند. مانند افزودن یک مطلب، بروزرسانی پروفایل کاربری یا  پیوند جدید و...

gii با تولید خودکار CRUD سعی دارد برنامه نویس را در قسمت های مختلف نرم افزار درگیر مسائل تکراری و زمان بر نکند.

بیشتر بخوانید

درس های yii2 شماره 5: ActiveRecord چیست؟

active record pattern الگوی طراحی‌ای است که معمولاً در نرم‌افزارهایی که از پایگاه‌های دادهٔ رابطه‌ای برای ذخیره داده‌های خود بهره می‌برند به کار می‌رود.

active record pattern روشی برای دستیابی داده‌ها از درون پایگاه داده است. یک جدول پایگاه داده یا نما توسط یک کلاس همپوشانی می‌شود، بنابراین یک نمونه از شی برای یک سطر یکتا در جدول گره می‌خورد. پس از ساخت یک شی، سطر جدیدی به جدول افزوده می‌شود. هر شی‌ای که بارگذاری می‌شود اطلاعات خود را از پایگاه‌داده می‌گیرد. هنگامی که شی‌ای به‌روز می‌شود، سطر متناظرآن جدول نیز به‌روز می‌شود. کلاس همپوشان متدها یا خواص دستیابی برای هر ستون در جدول را پیاده‌سازی می‌کند. این الگو معمولاً توسط ابزارهای پایدار شی یا object persistence tools و در نگاشت رابطه‌ای شی یا object-relational mapping به‌کار می‌رود. معمولاً روابط کلیدخارجی همچون نمونه شی‌ای که دارای نوع مناسب است توسط یک خاصیت نشان داده می‌شوند. پیاده‌سازی active record pattern را می‌توان در فریم‌ورک‌های گوناگون و محیط‌های برنامه‌نویسی بسیاری یافت. برای نمونه، اگر در یک پایگاه‌داده جدولی با نام parts با ستون‌های name (از نوع رشته‌ای) و price (از نوع صحیح) وجود داشته باشد. الگوی active record pattern در کلاسی با نام part پیاده‌سازی می‌شود. این پیاده‌سازی در شبه‌کد زیر چنین است:

part = new Part()
part.name = «Sample part»
part.price = ۱۲۳٫۴۵
part.save()

 شبه‌کد بالا سطر جدیدی را در جدول parts با مقادیر داده شده می‌سازد و تقریباً معادل دستور SQL زیر است:

INSERT INTO `parts` (`name`, `price`) VALUES ('Sample part', ۱۲۳٫۴۵);

 

بیشتر بخوانید

درس های yii2 شماره 4: پیکره بندی دیتابیس

قبل از پیکره بندی دیتابیس، ابتدا باید مطمئن باشید که اکستنشن pdo در PHP نصب/فعال باشد. این موضوع دقیقا برای PDO driver دیتابیس شما هم صدق میکند.(به عنوان مثال اگر از MySQL استفاده میکنید باید pdo_mysql را هم بررسی کنید تا فعال و قابل استفاده باشد.)

اگر از قالب basic استفاده میکنید config/db.php و اگر با advanced کار میکنید common/config/main-local.php را باز و ویرایش کنید.

'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=yii2advanced',
'username' => 'root',
'password' => '',
'charset' => 'utf8'

در قالب advanced برای backend یا frontend پروژه میتوان تنظیمات دیتابیس متفاوتی قرار داد، برای این کار کافیست به عنوان مثال در  backend/config/main-local.php داخل components اطلاعات دیتابیس را وارد کرد. اگر چنین اطلاعاتی در مسیر backend/config/main-local.php وجود داشته باشد framework از این پیکره بندی جهت کار با دیتابیس استفاده میکند در غیر این صورت به سراغ common/config/main-local.php خواهد رفت.

 

'components' => [
    'db' => [
        'class' => 'yii\db\Connection',
        'dsn' => 'mysql:host=localhost;dbname=yii2advanced',
        'username' => 'root',
        'password' => '',
        'charset' => 'utf8',
    ],
.
.
.

 به طور معمول برای پیکره بندی از این روش استفاده میشود اما اگر شما نیاز به پیکره بندی خاصی همرا با پارامتر های متفاوتی دارید میتوانید یک نمونه از yii\db\Connection ایجاد و مقداردهی کنید.

درس های yii2 شماره 3: مسیریابی

مسیریابی در yii2 شامل دو مرحله است

- تجزیه درخواست ورودی به مسیر و query parameters

- تناظر یک controller action به مسیر و رسیدگی به درخواست

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

 زمانی که از فرمت پیش فرض URL استفاده میکنید، درخواست کاربر به مسیر و یک پارامتر GET به نام r تجزیه میشود.

برای اجرا و رسیدگی به درخواست کاربر باید controller action مشخصی برای مسیر ایجاد کنید.

یک مسیر به وسیله ی کاراکتر "/" به چند قسمت شکسته میشود. به عنوان مثال site/index به دو قسمت site و index شکسته خواهد شد. هر قسمت معادل یک شناسه است که به واحدی منسوب خواهد گشت(یک controller یا یک action).

با شروع از قسمت اول مسیر، framework بررسی میکند آیا چنین شناسه ای در متد actions تعریف شده یا خیر، اگر این شناسه وجود داشت یک شی از آن controller و تنظیماتی که همراه با آن در actions وجود دارد ساخته میشود در غیر این صورت controller در متد هایی که توسط کاربر نوشته شده به دنبال شناسه مورد نظر خود میگردد تا از آن استفاده کند.

درس های yii2 شماره 2: نصب yii framework 2 در ویندوز و لینوکس

1) به صفحه دانلود yii2 برید و با توجه به نیازتون قالب advanced یا basic رو دانلود کنید. (تفاوت قالب advanced و basic در yii framework 2)

2) فایل دانلود شده رو در هاست خود آپلود و از حالت فشرده خارج کنید.

3) وارد پوشه framework بشین و

در ویندوز: 

نرم افزار cmd رو اجرا کنید، init رو تاپیپ و بعدش enter بزنید.

در لینوکس: 

terminal رو اجرا کنید، php init رو تایپ و بعدش enter بزنید.

4) از شما پرسیده میشه که مقداردهی اولیه framework در چه محیطی باشد؟ عدد 0 معادل توسعه و 1 یعنی تجاری. از اونجایی که هدف ما پیاده سازی/توسعه یک نرم افزار جدید هست نه انتشار نهایی آن عدد 0 را تایپ و enter میزنیم. برای اطمینان از انتخاب شما و اینکه اشتباه نکرده باشید باز هم سوالی پرسیده میشود که به عنوان پاسخ yes را تایپ کنید.

 5) اگر همه چیز درست انجام شده باشه باید صفحه خوش آمد گویی yii رو ببینید.

درس های yii2 شماره 1: تفاوت قالب advanced و basic در yii framework 2

قالب advanced:

- دارای دو بخش frontend و backend در application میباشد که به عنوان مثال میتوان از backend برای پیاده سازی بخش مدیریت نرم افزار و frontend جهت قسمت کاربران استفاده کرد

- شامل مدل آماده User و قست هایی همچون ورود، بازگردانی کلمه عبور و ثبت نام است که با استفاده از آن میتوان توسعه قسمت کاربران application را به آسانی و با سرعت بیشتری انجام داد.

پس اگر در حال توسعه نرم افزاری هستین که شامل بخش های مدیریت و کاربران یا قسمت های بیشتری از این قبیل است از advanced استفاده کنید. و اگر تنها به frontend نیازمندید basic را پیشنهاد میکنم.

عضویت در خبرنامه
جهت اطلاع از آخرین فعالیت های من لطفا در خبرنامه عضو شوید