Solo una o più funzioni per file in PHP?

Ho questo problema che mi sta causando delle headache each volta che sto progettando le mie app in PHP: non so se dovrei creare file separati per each function (es: funzioni per validare moduli specifici).

OK, si potrebbe affermare che questo non ha senso perché dovrei includere each file separatamente e questo si tradurrebbe in un'applicazione più lenta forse?

Ma continuo a pensare che abbia senso dato che per un pageload dubito che altre funzioni sarebbero state usate dallo script, quindi devono essere caricate solo per niente? inoltre, non devo includere manualmente ciascun file di function se il sistema che disegno lo fa dynamicmente (parsing url vars o così) per me, cioè, function di caricamento (-file) esattamente quando necessario. Cosa ne pensi?

Il sovraccarico nel file include è minimo, non dovresti preoccuparti davvero, considerando il caching e altre cose. Di più su come puoi organizzarti e trovare rapidamente le tue cose.

Onestamente, uso raramente le funzioni, uso le lezioni. Normalmente la regola prevede una class per file. Ma ho anche un file toolbox che contiene tutte le mie funzioni globali.

Stai usando OO? Se è così, allora si dovrebbe sicuramente tenerlo una class per file e nominare i file in modo intelligente …

 class Page { ... } 

dovrebbe essere cercabile da qualche parte come classs/Page.php o includes/Page.class.php o simili.

Se hai solo un sacco di funzioni globali, dovresti raggrupparle in file, ad esempio includes/functions/general.php .

Per elaborare, la cartella delle functions potrebbe avere …

  • arrays.php
  • string.php
  • form_validation.php
  • request.php
  • general.php
  • html.php

Se stai organizzando i tuoi file in questo modo, un'idea migliore è usare una class e rendere statiche le funzioni, ad esempio string::isAlphaNum($str) . Questa è un'idea migliore perché introduce solo un nuovo termine per il tuo spazio dei nomi globale, invece di un gruppo di essi inutilmente.

Se stai usando PHP 5.3, puoi anche guardare gli spazi dei nomi.

Assicurati di aver installato APC , xCache o eAccelerator . Tutti forniscono cache per bytecode PHP compilato.

Significa che una volta che il file è stato incluso verrà archiviato in memory e pronto per essere utilizzato dalle richieste di funzionalità. Non ci sarà bisogno di includere file.

Quasi certamente vednetworking un risultato di performance più significativo attraverso l'aumento delle letture di I / O su più (molti) file inclusi rispetto a un insieme più piccolo di file con molte funzioni.

Per i file automatici include, racchiude le funzioni in classi appropriate e usa spl_autoload per consentire a PHP di gestire il process di inclusione.