تجربه من در codeigniterو راه اندازی دو پروژه توسط اون بسیار لذت بخش بود از قابلیتهای این فریم ورک:
۱− همه چیز دست برنامه نویس و تغییرات در اون بسیار راحت
۲− یادگیری فوق العاده سریع
۳− دوری از تنظیمات زیاد برای استفاده از تمپلیت یا مدل
و خیلی مزایای دیگه که کار با اون رو لذت بخش میکنه.
ولی نبود command line در اون خیلی عذاب آوره در صورتی که بیشتر فریم ورکهای ابزاری برای crud,controller,model و خیلی از کارهای دیگه که ضرف چند ثانیه میشه بیشتر زحمات عمومی یک پروژه رو انجام داد.
و اما yii که در حال مطالعه بر روی اون هستم خیلی چشممو گرفته. انگار این همون ci ولی با قابلیتهای بیشتر هست.
و اما بریم سر اصل قضیه برای اضافه کردن command line در سیستم عامل لینوکس اوبونتو ابتدا به مسیر پوشه ای که yii رو در اون extra کردید برید و البته باید در پوشه framework باشید و دستور زیر رو وارد کنید تا مسیر جاری برای نشون داده بشه
pwd
که مسیر جاری من بصورت زیر هست
/home/mehrdad/host/yii/framework
آدرسی که نشون داده میشه رو کپی کنید و دستورات زیر رو با آدرس اون در ترمینال وارد کنید
export PATH=$PATH:/path/to/framework
برای تبدیل حروف انگلیسی به فارسی تابع زیر بسیار مفید هست
String.prototype.toPersinaDigit= function(){ var id= ['۰','۱','۲','۳','۴','۵','۶','۷','۸','۹']; return this.replace(/[0-9]/g, function(w){ return id[+w] }); }
var en_number = "0123456789"; alert(en_number.toPersinaDigit());
String.prototype.toEnglishDigit = function() { var find = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹']; var replace = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']; var replaceString = this; var regex; for (var i = 0; i < find.length; i++) { regex = new RegExp(find[i], "g"); replaceString = replaceString.replace(regex, replace[i]); } return replaceString; };
var fa_number = "۰۱۲۳۴۵۶۷۸۹"; alert(fa_number.toEnglishDigit());
برای چک کردن مقدار ورودی کاربری روشهای زیادی هست که سمت کاربر معمولا با html5 یا javascript و یا هر دو با هم استفاده میشه. البته در اینجا با validation سمت سرور کار نداریم
ساعتها وقت نیاز هست تا یک تابع validation رو بر روی تمام مرورگرها و سیستمها تست کنید تا از کار کرد خوب اون مطمئن بشید. در اینجا بهترین توابع validation رو که بر حسب تجربه جمع آوری کردم رو میزارم
برای number
// check 0-9 digit function is_digit(input) { return (input - 0) == input && (input + '').replace(/^\s+|\s+$/g, "").length > 0; }
// Check if string is a valid email address function valid_email(fData) { var reg = new RegExp("^[0-9a-zA-Z]+@[0-9a-zA-Z]+[\.]{1}[0-9a-zA-Z]+[\.]?[0-9a-zA-Z]+$"); return reg.test(fData); }
تعداد حروف وارد شده در متن(زبان فارسی بدلیل encoding دو برابر نشان داده میشود)// Check if string is non-blank var isNonblank_re = /\S/; function none_blank(input) { return String(input).search(isNonblank_re) != -1 }
البته کدهای دیگری هم هستن که به مرور زمان بعد از تکمیل شدن اینجا میزارم. تمام برنامههای نوشته شده رو در یک بسته میتونید دانلود کنید.// Get String Length function regGetStrLength(input) { var valLength = input.length; var reg = new RegExp("^[\u0391-\uFFE5]$"); var result = 0; for (i = 0; i < valLength; i++) { if (reg.test(input.charAt(i))) { result += 2; } else { result++; } } return result; }