(PHP) fonksiyonların dosyaları da dahil olmak üzere verimlilik

5 Cevap php

Ben fonksiyonları sayıda olsaydı bu büyük bir dosyada hepsini tutmak için daha iyi olurdu ya da ilgili fonksiyonların birkaç dosya içine onları ayırmak için daha iyi olurdu. Daha iyi derken maintainability hem ve istek işlenirken sunucu için daha verimli anlamına gelir.

Örneğin şu anda ben adında bir dosyada tüm dosyaları include.php. Ama sanki içeren bir dosya eklemek akıllıca olacaktır:

<?php
 include('/functions/user.php');
 include('/functions/admin.php');
 include('/functions/content.php');
 include('/functions/nav.php');
 include('/functions/database.php');
 include('/functions/other_junk.php');
?>

5 Cevap

Kesinlikle idame uğruna, onları ayırmak. Ben performansı hiç yaşayacaktır şüpheliyim, ama (sadece teensy biraz) yapar bile bakımı, okunabilir kod yazmaya daha iyiyiz.

Eğer XCache veya APC gibi bir PHP önbellek kullandığınızdan emin olmak istiyorum. Sizin PHP dosyaları daha sonra tüm bellekte olmalı ve sizin dahil tüm diski isabet endişe olmamalıdır.

Eğer kendi dosyaları içine fikirli işlevleri / sınıflar gibi dağıldı ben kesinlikle daha kolay bulur.

Yönetilebilirliğinin açısından, ilgili gruplar halinde işlevlerini ayırmak için genellikle daha iyidir. (Eğer yukarıdaki gösterdiğim gibi, user.php, yalnızca kullanıcı ile ilgili işlevler olurdu).

You should only have a file that has all of those includes if you know that you'll need all of the included files every time you need to include any file. Otherwise, it defeats the purpose of having that 'catch-all' file.

Benim deneyim çoklu olarak içerir ve / veya genel olarak konum fonksiyon kütüphaneleri için birkaç düzine ya da öylesine dosyaları konuşurken eğer geri çok ayarlamak için goping öyle gerektirir. Eğer sadece bir istek ömrü boyunca bir kez belirli bir dosya için deyimi aramak için yönetebilirsiniz özellikle.

Bu performans isabet göstermeye başlar nerede OOP veya farklı sınıfları / dosyaları yüzlerce olabilir son derece karmaşık bir işlevsel / prosedür tipi mimarisi içine almak olduğunu. Ama genelde bu noktada sen umarım önbelleğe / derleme yoluyla azaltılması çeşit yaptım.

Ben bir liste merkezi. Config dosyasına dahildir var.

Tüm OOP sınıflar için ben autoload kullanmak rağmen -> Ben biraz daha yavaş olduğunu biliyorum, ama ben yeni bir sınıf yapmak gibi onları dahil etmek zorunda kaydeder. Gerektiği gibi ve sadece yüklenen ediyoruz.

Bir kenara, bu dosya zaten dahil olup olmadığını kontrol etmek yok gibi include_once daha hızlıdır içerir.