PDA

View Full Version : آموزش: 50 نکته اموزشی در مورد php نیاز به ترجمه



javadth
سه شنبه 20 تیر 1391, 19:19 عصر
سلام
از یکی از سایت ها 50 نکته اموزشی در مورد php برداشتم ولی نیاز به ترجمه داره
با تشکر از همه دوستان فایل ها به pdf تبدیل شد با قید نام مترجمین

فایل english http://eharaji1.persiangig.com/document/50%20important%20php%20ways.rar

فایل فارسی http://wdl.persiangig.com/pages/download/?dl=http://eharaji1.persiangig.com/document/%D9%86%DA%A9%D8%A7%D8%AA%20%D8%A7%D9%85%D9%88%D8%B 2%D8%B4%DB%8C%20php-png%20(1).zip

mtchabok
سه شنبه 20 تیر 1391, 23:14 عصر
من زبانم خوب نیس ولی 10 تای اولی رو سعی می کنم مفهوم رو برسونم .
1- echo از print سریعتر است .
2- استفاده از کوتیشن (') سریعتر هس نسبت به دابل کوتیشن (") به دلیل اینکه php در دابل کوتیشن به دنبال متغیر میگرده ولی در کوتیشن این چنین نیست .
3- برای استفاده متغیر در رشته ها از sprintf به جای دابل کوتیشن استفاده کنین بیش از 10 برابر سریعتر است .
4- سعی کنید تا از چند echo به جای یک echo ولی با وصل کردن استفاده کنید .
5- از یک متغیر در حلقه برای مقدار حداکثر استفاده کنین زیراکه در هر بار چرخش حلقه مقدار حداکثر محاسبه میشود .

for ($x=0; $x < count($array); $x)
$max=count($array); for ($x=0; $x < $max; $x)
6- برای آزادسازی حافظه متغیرهای خودتون رو unset یا null بکنید مخصوصا آرایه های بزرگ .
7- از __get, __set, __autoload دوری کنید.
8- استفاده از require() به جای require_once() بهتره زمانیکه ممکن است .
9- استفاده از آدرسهای کامل در include ها و require ها ، زمان کمتری رو برای بازسازی مسیر میگیره .
10- require() و include() با هم برابر هستند به غیر از اینکه require() در صورت پیدا نکردن فایل اسکریپت رو متوقف میکنه .

pejman_view
چهارشنبه 21 تیر 1391, 05:03 صبح
سلام

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

11- از انتشار پی اچ پی 5 زمان تلف شده برای اجرای کد با آرایه $_SERVER[’REQUEST_TIME’] قابل دستر است و دیگر لازم به استفاده از تابع های زمان نیستید.

12- روش مقایسه رشته ایی PCRE سریعتر از EREG است. از تابع های سریعتر خود پی اچ پی مانند: strncasecmp, strpbrk and stripos استفاده نمایید.

13- زمانی که لازم است XML را در PHP تجزیه کنید. که شما را وادار می کند از تابع های XML PHP استفاده کنید. برای HTML شما می توانید از DOM Document یا DOM XML در PHP 4 استفاده کنید.

14- تابع str_replace سریعتر از preg_replace است. در کل str_replace بهتر است. البته strstr در بعضی از موارد در رشته های بلند سریعتر عمل می کند. استفاده از آرایه در تابع str_replace سرعت جستجو و جایگزینی نسبت به استفاده از چندتا از این بیشتر می باشد.

15. استفاده از "else if" سریعتر از case/switch انجام می شود.

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

17. برای کاهش استفاده از پهنای باند در آپاچی نسخه 2 mod_deflate را فعال نمایید و برای آپاچی نسخه 1 mod_gzip

18. اتصال دیتابیس خود را هنگامی که کارتان با آن تمام شد ببندید.

19. $row[’id’] 7 برابر سریعتر از $row[id] است. چون زمانی که از نقل قول استفاده نکنید باید حدس بزند که آیا این اندیس یک ثابت است یا یک رشته. (در بعضی موارد پی اچ پی بدون نقل قول با خطا مواجه می شود بهتر است به این مورد خوب دقت کنید).

20. از <?php … ?> برای باز کردن و بستن کدهای پی اچ پی خود استفاده کنید، دیگر استایل ها توصیه نمی شود که شامل تگ کوتاه هم می شود (تگ کوتاه ملزم می کند که در php.ini آن را فعال کنید و در بعضی موارد باعث نقص امنیتی در برنامه شما می شود)

soroush.r70
چهارشنبه 21 تیر 1391, 10:35 صبح
pejman_view ممنونم ازت اگر ترتیب کد ها رعایت بشه و خوب نوشته بشه عالی می شه متشکرم

blackmak
چهارشنبه 21 تیر 1391, 13:50 عصر
من از 30 تا 40 ترجمه کردم شاید pejman_view در حال ترجمه بود.
ترجمه رو یه جاهایی تغییر دادم که به فارسی بهتر مطلبو برسونه و توی پرانتز توضیحاتی هم دادم هرجا که شاید گنگ بود.

30. تفاوت میان کد خوب و کد بد را یاد بگیر
31. کد نویسی استاندارد باعث میشه که آسانتر کدهایی که دیگران مینویسن را بفهمی و دیگران هم راحتتر کدهای شمارا بفهمند
32. جدا نوشتن کد، محتوا و ارائه ( فکر کنم به مدل کنترلر ویو اشاره داره) کد پی اچ پی را از اچ تی ام ال جدا میکند
33.خودتان را با استفاده از سیستم های پیچیده ی تمپلیت مانند اسمارتی اذیت نکنید. از اونی استفاده کنید که در پی اچ پی وجود داره ob_get_contents را ببینید و استخراج کنید و به آسونی اطلاعات را از پایگاه داده بکشید.
34. هیچ وقت به مقادیری که از سمت یوز می آید اعتماد نکنید ( مانند متد پست) از mysql_real_escape_string استفاده کنید وقتی با مای اسکیوال کار میکنید (یعنی وقتی می خواهید بریزید توی پایگاه داده با استفاده از تابع بالا دیتا رو اسکیپ کنید تا خطر sql injection از بین بره ) و از تابع htmlspecialchars استفاده کنید وقتی می خواهید می خواهید خروجی اچ تی ام ال بدید
35. به دلایل امنیتی هیچوقت اطلاعاتی را که باعث میشن مسیر ها و افزونه ها وتنضیمات نشان داده بشن نمایش ندید مانند: display_error یا phpinfo() (منظور اینه که هیچ اطلاعاتی راجع به سرور نباید لو بره )
36. register_globals را غیر فعال کنید ( به دلایلی به صورت پیش فرض غیرفعال است) هیچ اسکریپتی از یک محصول نیاز ندارد که فعال کند آن را چون ریسک امنیتی دارد. هر اسکریپتی که در آن فعال است را درست کنید و هر اسکریپتی که در آن نیاز دارد تا غیر فعال باشد را با unregister_globals() غیر فعال کنید (در کل استفاده نکنید از این دیگه ) همین الان اینکار را انجام دهید. در پی اچ پی ورژن 6 این خاصیت حذف می شود
37. پسورد را به صورت متن ساده ذخیره نکنید تا لو نره. بجاش از هش استفاده کنید مثل MD5 (پسورد را هش کنید دیگه مستقیم تو پایگاه داده نریزینش)
38. از ip2long() یا long2ip() برای ذخیره آی پی به صورت عددی استفاده کنید به جای رشته ای.
39. از خلق دوباره چرخ (کدها و اسکریپت ها ) دوری کنید با استفاده از پروژه PEAR به شما کد با استاندارد بالایی میده
40. وقتی دارید از header(’Location: ‘.$url); استفاده می کنید یادتون باشه که دنبالش die(); بیاورید اگر اسکریپت در اجرا از location عبور کرد و ادامه پیدا کرد بقیه محتوا نشان داده نشود.

pejman_view
چهارشنبه 21 تیر 1391, 16:22 عصر
سلام

ممنون از Black Mak عزیز کارم را خیلی ساده تر کردید. همانطور که می دانید خواندن یک متن انگلیسی با ترجمه اش خیلی فرق دارد. متاسفانه در خواندن انسان متوجه می شود منظور آن خط چیست اما در ترجمه باید عیناً آن منظور را که معادل فارسی هم ندارد برای کاربر ترجمه کنید. بخاطر همین خیلی بیشتر زمان می بره تا ترجمه کنم (و از وقت استراحتم بیشتره)
21. از کد دقیق استفاده کنید که از خطاها و هشدارها جلوگیری شود، کدهای تمیزتر سربار کمتر. توجه کنید که گزارش خطا را در حالت E_ALL قرار بدهید. error_reporting(E_ALL) در php.ini
(اما این توصیه برای دیباگینگ کاربرد داره)

22. اسکریپت پی اچ پی بر روی آپاچی 2 تا 10 برابر کندتر نسبت به صفحات ایستا پردازش می شود. تلاش کنید از صفحات ایستا بجای اسکریپت های سمت سرور استفاده کنید.

23. اسکریپت های پی اچ پی (مگر اینکه کش شده باشند) هر دفعه که فراخوانی می کنید همزمان چندکار را با هم انجام می دهد. از ابزارها برای کش کردن مانند memcached ، eAccelerator و Turck MMCache استفاده کنید. باعث می شود 25-100% کارایی و سرعت پردازش با عدم کامپایل کردن بیشتر شود. می توانید حتی از eAccelerator بر روی Cpanel که از EasyApach3 استفاده می کند نصب کنید.

24. روش های جایگزین برای کش کردن وقتی است که صفحاتی دارید که محتویات آن بصورت مداوم در حال تغییر نیستند می توانید از کش اچ تی ام ل صفحات پی اچ پی خود استفاده کنید. از Smarty یا Cache Lite استفاده کنید.

25. زمانی که امکانش وجود دارد از تابع isset بجای strlen استفاده کنید مانند مثال:
if (strlen($foo)<5){ echo 'foo is too short'; }
جایگزین بهتر:
if (!isset($foo{5})){ echo 'Foo is too short'; }
(البته در مثال اصلی آن در نکته ایی که برای نقل قول دوتایی گفته دقت نکرده)

26. ++$i نسبت به $ i++ سریعتر است. پس در جاهایی که امکان دارد از ++$i استفاده نمایید.

27. از تابع های پیش نوشته شده در PHP استفاده نمایید، تلاش نکنید که خودتان تابع های مشابه طراحی کنید. چون تابع های موجود در پی اچ پی سرعت بیشتری نسبت به تابع های شما خواهند داشت.
(خیلی به این نکته توجه کنید هم کار خودتان را دو برابر می کنید و هم سرعت پردازش پایین تر می آید چون معمولاً از بهینه ترین روش ها برای ساخت آن تابع ها استفاده می شود)

28. کدهایتان را پروفایل کنید! پروفایل به شما نشان می دهد که قسمت های مختلف کدتان چقدر زمان مصرف کرده تا اجرا شود. Xdebug debugger در حال حاضر دارای پروفایل کننده است. در کل پروفایل به شما گیرها و نواقص برنامه هایتان را نمایش می دهد.

29. کد خود را مستند کنید.