loading...
آموزش فریم ورک Yii
امیر بازدید : 56 چهارشنبه 04 مرداد 1396 نظرات (0)

برنامه نویسی php
How to get response as json format(application/json) in yii?

Create this function in your (base) Controller:


protected function renderJSON($data)
{
header('Content-type: application/json');
echo CJSON::encode($data);
foreach (Yii::app()->log->routes as $route) {
if($route instanceof CWebLogRoute) {
$route->enabled = false; // disable any weblogroutes
}
}
Yii::app()->end();
}

امیر بازدید : 56 سه شنبه 03 مرداد 1396 نظرات (0)

برنامه نویسی php
How to get response as json format(application/json) in yii?

Create this function in your (base) Controller:


protected function renderJSON($data)
{
header('Content-type: application/json');
echo CJSON::encode($data);
foreach (Yii::app()->log->routes as $route) {
if($route instanceof CWebLogRoute) {
$route->enabled = false; // disable any weblogroutes
}
}
Yii::app()->end();
}

امیر بازدید : 76 شنبه 03 تیر 1396 نظرات (0)

آموزش فریم ورک های laravel و Yii
هر کنترلری که در پروژه ها استفاده می شود از کلاس Controller ارثبری (extend) میشوند .
این کلاس خود دارای متد ها و پروپرتی هایی است .
در صورتی که شما نیاز به استفاده از انها داشته باشین می توانین آنها را بر اساس نیاز خود دوباره نویسی (override) کنین.
لیست متد ها و پروپرتی ها ی این کلاس در سایت اصلی همراه با توضیحات قرار دارد .جهت نمایش اینجا را کلیک نمایید.
نکته ای که در دوباره نویسی باید توجه داشته باشین اینه که حتما متد اصلی را در انتها صدا بزنید.
برای مثال ما متد beforAction را به این صورت دوباره نویسی می کنیم:

public function beforeAction($action)
{
if($action->id =='ignore' || $action->id =='accept')
{
$this->enableCsrfValidation = false;
}
//return true;
return parent::beforeAction($action);
}

امیر بازدید : 57 یکشنبه 21 خرداد 1396 نظرات (0)

هر مدلی که ما در اپلیکشین ایجاد می کنیم از کلاس yii\db\ActiveRecordارث می برد. این کلاس peroperty ها و method هایی داره که بسه به نیاز ما در پروژه بسیار کاربردی هست . خیلی از این پروپرتی ها و متد ها رو ما خواسته یا ناخواسته استفاده می کنیم . به عنوان مثال ما از پروپرتی های :

  1. $isNewRecord در فرم ها برای ثبت یا ویرایش مدل
  2. primaryKey در مدل برای تعریف کلید اصلی جدول

همچنین برای متد ها :

  1. save() برای ذخیره یا ویرایش رکورد جدید
  2. attributeLabels() برای مقداردهی به ستون های جدول
  3. delete() برای حذف رکورد از جدول

هدف ما در این قسمت آموزش برخی از این ویژگی ها به صورت عملی می باشد. متد attributeHints() ایجاد متن راهنما برای فرم public function attributeHints() { return [ 'title' => 'عنوان به فارسی نوشته شود', 'cat_id' => 'انتخاب گروه الزامی می باشد', 'buy_date' => 'تاریخ خرید اختیاری است', 'status' => 'وضعیت خرید خود را مشخص نمایید', 'price' => 'قیمت ها را به تومان وارد نمایید', ]; } hint-goyii.ir متد های afterSave() و beforSave() متدهایی که قبل یا پس از عملیات ثبت و یا ویرایش صدا زده می شوند public function beforeSave($insert) { if (!parent::beforeSave($insert)) { return false; } // ...custom code here... return true; } برای آشنایی با تمامی پروپرتی ها و متد های این کلاس می توانید به سایت اصلی مراجعه کنید. لینک داکیومنت این کلاس : Abstract Class yii\db\BaseActiveRecord

امیر بازدید : 75 شنبه 20 خرداد 1396 نظرات (0)

یکی دیگه از قابلیت های فریم ورک Yii در نسخه ۲ امکان نمایش یک اکشن از یک کنترلر به هنگام به روزرسانی و یا آپلود پروژه هست. قابلیت catchAll این امکان رو فراهم میکنه تا هر درخواستی ارسال میشه اپلیکیشن به صفحه مورد نظر ارجاع داده بشه و سایر صفحات نمایش داده نشود . برای مثال در کنترلر site اکشنی با نام catchall ایجاد میکنیم که متنی را به کاربر نمایش دهد مبنی بر اینکه سایت در حال به روز رسانی می باشد . سپس برای فعال کردن قابلیت جدیدمون در قسمت تنظیمات پروژه : اگر از پروژه basic استفاده می کنین در فولدر config و فایل web.php و اگر از پروژه advance استفاده میکنین در frontend فولدر config و در فایل main.php کد زیر را در متغییر $cinfig قرار دهید: 'catchAll' => [ 'site/catchall', ], توجه کنین که کد زیر در $config قرار میگیرد . همچنین به حروف بزرگ و کوچک توجه کنین.


sorting در dataProviderدر کنترلر حذف web از پروژه basic در IIS در Yii2

امیر بازدید : 96 جمعه 19 خرداد 1396 نظرات (0)

برای قرار دادن صفت و پروپرتی های اختیاری به NavBAr به عنوان مثال target=_blank جهت باز شدن لینک در تب جدید از linkOptions استفاده می کنیم: مثال در ویجت NavBar در قالب پیش فرض bootstrap فریم ورک Yii2: ['label' => 'نمایش سایت','url' => ['/site/index'], 'linkOptions' =>['target'=>'_blank']],

امیر بازدید : 80 جمعه 22 اردیبهشت 1396 نظرات (0)

یکی دیگه از دستورات جدید در پی اچ پی پنج
َArrayObject
هست
تبدیل آرایه به شی
این کلاس اجازه میده که با اشیا مانند آرایه رفتار کنیم
append()
متدی است که به آخر شی مقداری اضافه میکند:
$arrayobj = new ArrayObject(array('first','second','third'));
$arrayobj->append('fourth');
$arrayobj->append(array('five', 'six'));
var_dump($arrayobj);
خروجی
object(ArrayObject)#1 (5) {
[۰]=>
string(5) "first"
[۱]=>
string(6) "second"
[۲]=>
string(5) "third"
[۳]=>
string(6) "fourth"
[۴]=>
array(2) {
[۰]=>
string(4) "five"
[۱]=>
string(3) "six"
}
}

getIterator()
این متد یک شی ایتراتور ایجاد میکنه و شما میتونین از تکرار کننده استفاده کنین
این متد برای دریافت تکرار کننده شی از هر آرایه ای مفید است
$array = array('1' => 'one',
'۲' => 'two',
'۳' => 'three');
$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();
while($iterator->valid()) {
echo $iterator->key() . ' => ' . $iterator->current() . "\n";
$iterator->next();
}
خروجی
۱ => one
۲ => two
۳ => three

offsetExists()

این متد میتونه تشخیص بده که آفست در شی وجود داره یا نه
$arrayobj = new ArrayObject(array(‘zero’, ‘one’, ‘example’=>’e.g.’));
var_dump($arrayobj->offsetExists(1)); // true
offsetGet()
این متدبرای نمایش مقدار یک افست استفاده میشه
آفست میشه همون ایندکس تو آرایه

$arrayobj = new ArrayObject(array('zero', 7, 'example'=>'e.g.'));
var_dump($arrayobj->offsetGet(1));
var_dump($arrayobj->offsetGet('example'));
var_dump($arrayobj->offsetExists('notfound'));
خروجی
int(7)
string(4) "e.g."
bool(false)

offsetSet()
مثل آفست گت با این تفاوت که برای ست کردن ایندکس استفاده میشه


class Example {
public $property = 'prop:public';
}
$arrayobj = new ArrayObject(new Example());
$arrayobj->offsetSet(4, 'four');
$arrayobj->offsetSet('group', array('g1', 'g2'));
var_dump($arrayobj);
$arrayobj = new ArrayObject(array('zero','one'));
$arrayobj->offsetSet(null, 'last');
var_dump($arrayobj);
خروجی
object(ArrayObject)#1 (3) {
["property"]=>
string(11) "prop:public"
[۴]=>
string(4) "four"
["group"]=>
array(2) {
[۰]=>
string(2) "g1"
[۱]=>
string(2) "g2"
}
}
object(ArrayObject)#3 (3) {
[۰]=>
string(4) "zero"
[۱]=>
string(3) "one"
[۲]=>
string(4) "last"
}

offsetUnset()
این متد میتونه المنتی از ایندکس را خالی کنه در واقع حذف کنه
$arrayobj = new ArrayObject(array(0=>’zero’,2=>’two’));
$arrayobj->offsetUnset(2);
var_dump($arrayobj);
خروجی
object(ArrayObject)#1 (1) {
[۰]=>
string(4) “zero”
}
مثال


$users = new ArrayObject(array("hasin" => "hasin@pageflakes.com",
"afif" => "mayflower@phpxperts.net",
"ayesha" => "florence@pageflakes.net"));
$iterator = $users->getIterator();
while ($iterator->valid()) {
echo "{$iterator->key()}'s Email address is
{$iterator->current()}<br/>";
$iterator->next();
}
خروجی
hasin's Email address is hasin@pageflakes.com
afif's Email address is mayflower@phpxperts.net
ayesha's Email address is florence@pageflakes.net

امیر بازدید : 70 چهارشنبه 13 اردیبهشت 1396 نظرات (0)

در آموزش های قبلی برای مدیریت سطح دسترسی از rbac  استفاده کردیم .

rbac متد هایی داره که بسیار مفید و پرکاربرد هست.

در زیر به چند مورد از آن ها را اشاره می کنیم:

  1. \Yii::$app->authManager->getRolesByUser(Yii::$app->user->id)
    1. تمامی نقش های کاربر را همراه با جزئیات نمایش می دهد
  2. \Yii::$app->authManager->getPermissionsByUser($user_id)
    1. تمامی مجوز های یک کاربر را نمایش می دهد
  3. Yii::$app->user->can(‘role or permission’)
    1. همانطور که قبلا گفتیم: مشخص میکند که آیا کاربر به نقش یا مجوز نوشته شده دسترسی دارد یا خیر .نتیجه true or false

تعداد صفحات : 20

درباره ما
Profile Pic
آموزش مرحله به مرحله فریم ورک Yii
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آمار سایت
  • کل مطالب : 197
  • کل نظرات : 0
  • افراد آنلاین : 3
  • تعداد اعضا : 1
  • آی پی امروز : 49
  • آی پی دیروز : 33
  • بازدید امروز : 159
  • باردید دیروز : 95
  • گوگل امروز : 0
  • گوگل دیروز : 0
  • بازدید هفته : 294
  • بازدید ماه : 401
  • بازدید سال : 2,376
  • بازدید کلی : 26,932