استفاده از سیستم کش در cms

phpweb

Active Member
هر دو سؤالتون رو با يك سؤال جواب ميدم!
سؤال : وقتي كه سرعت كار php با فايلها فوق العاده سريع و در حد چند هزار ثانيه است، شما مطمئنيد كه دو كاربر اينقدر سريع (در حد هزارم ثانيه) و بطور همزمان به سايت متصل ميشن كه قبل از ساخته شدن مجدد فايل، يك نفر ديگه بخواد همون فايل رو ببينه؟ حتي اگه به احتمال يك در ميليون، چنين اتفاقي بيفته، باز هم مشكل خاصي نيست. صفحه خالي براش مياد كه با يك بار refresh مشكل رفع ميشه!
ظاهرا سرعت سیستم فایل بسیار بیشتر از اون چیزی هست که چند نفر با هم بتونن به یه فایل دسترسی داشته باشن.

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

امکانش هست که بگید چرا فایلهای کش رو اینکلود نمی کنن؟
 
آخرین ویرایش:

MMSHFE

Active Member
ظاهرا سرعت سیستم فایل بسیار بیشتر از اون چیزی هست که چند نفر با هم بتونن به یه فایل دسترسی داشته باشن.

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

امکانش هست که بگید چرا فایلهای کش رو اینکلود نمی کنن؟
دليلش خيلي ساده است: وقتي شما فايلي رو اينكلود ميكنيد، PHP داخلش رو بررسي ميكنه و كدهاي PHP احتمالي كه توي اون موجود باشه رو اجرا ميكنه اما وقتي ميخونيد و نمايش ميدين، با محتويات فايل مثل متن خام برخورد ميشه. درنتيجه سرعت كار بالاتر ميره. طبيعتاً توي فايل Cache كد PHP نداريم و درنتيجه بهتره اون رو به حالت متن ساده بخونيم و نمايش بديم. درست مثل رشته هاي توي گيومه تك كه چون پردازش نميشن، سرعتشون از رشته هاي داخل گيومه جفت بيشتره. البته به جاي سه مرحله بازكردن، خواندن و بستن، ميتونيد از file_get_contents استفاده كنيد كه هر سه كار رو انجام ميده و محتويات فايل رو بصورت يك رشته تحويل ميده. حتي ميتونيد درصورت نياز، با تابع file، فايل موردنظرتون رو بخونيد. اين تابع هم مثل تابع قبلي عمل ميكنه با اين تفاوت كه خروجي اون، يك آرايه است كه هر خونه از آرايه مذكور، يك سطر از فايل هست. موفق باشيد.
 

phpweb

Active Member
دليلش خيلي ساده است: وقتي شما فايلي رو اينكلود ميكنيد، PHP داخلش رو بررسي ميكنه و كدهاي PHP احتمالي كه توي اون موجود باشه رو اجرا ميكنه اما وقتي ميخونيد و نمايش ميدين، با محتويات فايل مثل متن خام برخورد ميشه. درنتيجه سرعت كار بالاتر ميره. طبيعتاً توي فايل Cache كد PHP نداريم و درنتيجه بهتره اون رو به حالت متن ساده بخونيم و نمايش بديم. درست مثل رشته هاي توي گيومه تك كه چون پردازش نميشن، سرعتشون از رشته هاي داخل گيومه جفت بيشتره. البته به جاي سه مرحله بازكردن، خواندن و بستن، ميتونيد از file_get_contents استفاده كنيد كه هر سه كار رو انجام ميده و محتويات فايل رو بصورت يك رشته تحويل ميده. حتي ميتونيد درصورت نياز، با تابع file، فايل موردنظرتون رو بخونيد. اين تابع هم مثل تابع قبلي عمل ميكنه با اين تفاوت كه خروجي اون، يك آرايه است كه هر خونه از آرايه مذكور، يك سطر از فايل هست. موفق باشيد.
آیا سرعت تابع file_get_contents هم مثل سرعت سایر توابع سیستم فایل هست؟

مشکلی که هست اینه که ممکنه بعضی از اطلاعات فایل کش برای مدیران و کاربران لاگین کرده باشه، از اونجایئکه نباید از توابع پی اچ پی توی فایل های کش استفاده کرد و در صورتیکه امکان استفاده از htaccess وجود نباشه، چطور جلوی درخواستهای مستقیم که به فایلهای کش می رسن رو بگیریم؟
 

MMSHFE

Active Member
دوست گرامي، گفته شد بهتره براي افزايش سرعت، از كدهاي PHP توي فايل Cache استفاده نشه اما در مواردي كه مجبور هستين (مثل بررسي لاگين كردن كاربر و...) راه چاره اي نيست و ناچاراً بايد فايل كش PHP باشه و بجاي خوندن اون بصورت متن خام، اون رو include كنيد. ضمناً سرعت file_get_contents هم مثل ساير توابع فايل، بالاست. موفق باشيد.
 

payamsp

Member
با استفاده از htaccess هم میشه دسترسی مستقیم به فایل های کش رو مسدود کرد .
 

phpweb

Active Member
با استفاده از htaccess هم میشه دسترسی مستقیم به فایل های کش رو مسدود کرد .
باید از همین روش استفاده کنم تا دیگه نیازی به اینکلود کردن و پردازش کدهای پی اچ پی نباشه.
 

جدیدترین ارسال ها

بالا