Monthly Archives: January 2017

توابع مهم و کاربردی php قسمت اول

در این پست یک سری از توابع مهم و پرکاربرد php را قرار دادیم

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

header('Content-type: text/plain; charset=utf-8');

header('Content-Type: application/json ; charset=utf-8 ');

 

برای تبدیل ارایه به رشته جیسون

echo json_encode($myArray,JSON_UNESCAPED_UNICODE);

چند مثال ساده:

$myArray['site']='Nitro Code';
$myArray['name']='Benyamin';
//خروجی \/
{"site":"Nitro Code","name":"Benyamin"}
//--------------------------------------
$myArray[]="blue";
$myArray[]="red";
$myArray[]="white";
// خروجی
{"blue","red","white"}

این تابع یک ورودی دریافت می کند و اگر ورودی ما تماما از عدد تشکیل شده باشد مقدار true و در غیر این صورت false را بر می گرداند

$bool=is_numeric($value);

 

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

public function getIranTime(){
        date_default_timezone_set("Asia/Tehran");
        return date('Y/m/d H:i:s');
    }

 

برای تولید رشته های تصادفی از تابع زیر استفاده می شود

public function generateRandomString($length = 10)
    {
    return substr(sha1(rand()), 0, $length));
    }

بدست اوردن تعداد عناصر یک ارایه

count($str);

 

برای مقایسه دو رشته با هم از strcasecmp($str1,$str2 ) استفاده می کنیم این تابع بین حروف کوچک و بزرگ حساس نیست

اماتابع Strcmp($str1,$str2) مقایسه را انجام می دهد و نسبت به حروف کوچک و بزرگ حساس است اگر دو رشته کاملا با هم برابر باشند مقدار 0 را بر می گرداند اگر با هم برابر نباشند مقدار -1


چند مطلب مهم و پایه ای فریم ورک فت فری

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

در حالت عادی زمانی که شما یک فایل php را در سرور خود قرار میدهید ( فرض میکنیم اسم فایل php ما nitro.php است ) زمانی که می خواهیم این فایل را اجرا کنیم باید ادرس url رو به این صورت وارد کنیم :

http://yoursite.ir/file/nitro.php

یکی از امکانات فریم ورک ها قابلیت مسیردهی ( routing ) انها است که قابلیت انعطاف بالایی به ما می دهد برای مثال به راحتی می توانید به هر شکل که دوست دارید مسیر دهی به فایل php را انجام دهید برای مثال:

http://yoursite.ir/nitro

“Read More”


دریافت و ارسال به سرور با کتابخانه volley

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

برای افزودن کتاب خونه volley به برنامه خود کد زیر را در gradle قرار دهید و پروژه رو sync new کنید

Github : android-volley

compile 'com.mcxiaoke.volley:library:1.0.19'

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

RequestQueue queue = Volley.newRequestQueue(this);

StringRequest stringRequest=new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {

    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {


    }
});
queue.add(stringRequest);

به جای کد Request.Method.POST می تونید Request.Method.GET رو استفاده کنید که بستگی به کد سمت سرورتون داره درواقع نوع متد ارتباط رو انتخاب میکنیم

نحوه ارسال پارامتر هم به صورت زیر انجام میشه

RequestQueue queue = Volley.newRequestQueue(this);
StringRequest stringRequest=new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {

    }
}){
    @Override
    public Map<String,String> getParams(){
        Map<String,String> params=new HashMap<>();
        params.put("id","12");
        return  params;
    }
};
queue.add(stringRequest);

در این مثال پارامتر id با مقدار 12 را به سرور به صورت GET ارسال و پاسخ سرور را در قسمت onResponse دریافت میکنیم

 

 

 


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

در این پست یاد میگیریم که چگونه با دیتابس mysql در فریم ورک fatfree کار کنیم همچنین این کد ها برنامه شمارو در مقابل حملات تزریق SQL یا همون SQL Injection کاملا ایمن میکنه

در کد زیر ابتدا دیتابیس رو مقدار دهی می کنیم بجای mydb نام دیتابیس رو می نویسیم و به جای root نام کاربری و به جای 1234 رمز دیتابیس رو می نویسیم

$db=new DB\SQL(
    'mysql:host=localhost;port=3306;dbname='."mydb",
    "root",
    "1234");

“Read More”


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

  • در این پست با نحوه نصب فریم ورک fat-free بر روی سیستم عامل لینوکس ابونتو و ویندوز اشنا خواهیم شد.

ما ساختار معماری 3 لایه یا همون mvc رو در این فریم ورک پیاده سازی خواهیم کرد برای نصب fatfree موارد زیر را باید انجام دهیم

  1. نصب برنامه git و Composer
  2. دانلود fatfree
  3. پیاده سازی فریم ورک

کاربران ویندوز هم می توانند با کلیک روی لینک های بالا وارد سایت مورد نظر بشن و فایل نصب git و composer رو دانلود و به راحتی نصب کنند بقیه مراحل در هر دو سیستم عامل یکسان است

برای نصب git کد زیر را در ترمینال اجرا کنید

sudo apt-get install git

برای نصب Composer

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

بعد از نصب برنامه های بالا فریم ورک fat-free رو از لینک زیر دریافت کنید

دانلود fatfree framework

بعد از دانلود فایل را در فولدر مناسبی از حالت فشرده خارج کنید. وارد فولدر fatfree-master شوید و روی پنجره فولدر راست کلیک کنید و open Terminal رو بزنید حالا کد زیر رو با حالت ادمین در ترمینال اجرا کنید و منتظر بمونید تا نصب کامل بشه ممکنه کمی زمان بر باشه

کاربران ویندوز در cmd باید دستور زیرو وارد کنند

composer install

در صورتی که نصب درست انجام شده باشه یک فولدر به نام vendor به فولدر پروژه ما اضافه شده است اگر روی سیستم شما سرور مجازی نصب باشد می توانید در مرورگر خود نتیجه را مشاهده کنید

http://localhost/sample/fatfree-master/

حالا میخواهیم پروژه خود را به صورت MVC ساختار دهی کنیم فولدری به نام app بسازید حال به درون فولدر app رفته و 3 فولدر به نام های controllers و file و views بسازید

حالا به ریشه اصلی پروژه یعنی همان فولدر fatfree-master می رویم درون این فولدر فایل index.php را باز کنید کد های درون ان را به کلی پاک کنید و کدهای زیر را درون آن قرار دهید و ذخیره کنید

<?php

require_once("vendor/autoload.php");

$f3 = Base::instance();

$f3->config('config.ini');
$f3->config('routes.ini');

$f3->run();

حالا فایلی به اسم routes.ini بسازید و کد زیر را داخل آن ذخیره کنید .

[routes]

;base routes
GET /=MainController->main
GET /hello=MainController->showHello

باز فایلی به نامconfig.ini بسازید و کد های زیر را درون آن ذخیره کنید

[globals]

DEBUG=3
UI=app/views/
AUTOLOAD=app/controllers/

حال به فولدرcontrollers که ساخته بودیم میریم (app/controllers) و درون آن فایلی به نام MainController.php می سازیم و کد زیر را درون ان ذخیره میکنیم

<?php

class MainController {

    function showHello(){
        echo 'Hello NitroCode.ir :)';
    }
    function main(){
         echo 'OK';
    }

}

خیلی خب کار تمام است حالا با مرورگر خود به مسیر پروژه برید پیام OK برای شما نشان داده می شود(http://localhost/sample/fatfree-master)

حال اگر جلوی ادرس کلمه hello را وارد کنید به این صورت :

http://localhost/sample/fatfree-master/hello

پیام زیر رو به شما نشون میده

Hello NitroCode.ir :)

منبع

مربوط :

مطالب مهم و پایه ای در fatfree

اموزش کار با دیتابیس mysql در fatfree


معرفی و مقایسه فریم ورک های php

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

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

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

framework میزان استفاده از رم وابستگی ها درخواست در ثانیه
phalcon-2.0 0.27 1.0 1,746
fatfree-3.5 0.42 1.6 1106
lumen-5.1 0.95 3.7 412
laravel-5.1 2.76 10.7 91

منبع اطلاعات جدول: https://github.com/kenjis/php-framework-benchmark/

laravel : طبق این بنچ مارک فریم ورک لاراول تنها 91 درخواست در 1 ثانیه را جواب داده و همین طور که مشاهده می کنید مصرف رم ان از بقیه فریم ورک ها بیشتر است البته کار با لاراول بسیار ساده است و شاید یکی از دلایل محبوبیت این فریم ورک در میان برنامه نویسان باشه.

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

fatfree : با توجه به جدول بالا این فریم ورک سرعت بسیار بالاتر و مصرف رم کم تری دارد و در 1 ثانیه به 1106 درخواست پاسخ داده است به اختصار به این فریم ورک f3 هم می گویند. حجم بسیار کمی دارد.

phalcon : این فریم ورک را به عنوان سریع ترین فریم ورک php می شناسند دلیل سرعت بالای آن استفاده این فریم ورک از کتابخوانه های زبان c است اما بنظر میرسد که پیاده سازی آن کمی مشکل است و شاید در هاست های اشتراکی نتوان از آن استفاده کرد

کدام فریم ورک را برای شروع انتخاب کنیم؟ با برسی ها و مقایسه های انجام شده پیشنهاد ما استفاده از فریم ورک fatfree است چون سرعت بالایی دارد و پیاده سازی آسانی دارد اما استفاده از آن کمی از لاراول سخت تر است پس اگر تنبل هستید لاراول انتخاب خوبی برای شماست 🙂 البته لاراول فریم ورک کامل و قدرتمندی است.