Che cos'è il "PHP Way"?

8

Vedo riferimenti costanti alla "Via", come le descrizioni di un particolare framework o applicazione come "Pythonic", una certa persona come "hacker Perl" o "vero codice Ruby", ma dove sono i "PHP" hacker, "le applicazioni" PHP-ic ", il" vero stile PHP "?

Questo mi ha fatto pensare - PHP ha anche uno stile definito? Dire che PHP è facilmente "modificabile" per altri stili non conta, come lo stesso vale per qualsiasi linguaggio ragionevole.

Qualsiasi input molto apprezzato.

    
posta Jonathan Chan 09.08.2011 - 07:58
fonte

7 risposte

13

A differenza di molti altri linguaggi di programmazione, PHP non ha un pensiero unificante o un insieme di idee chiave: è iniziato come un insieme molto pragmatico di script perl e le funzionalità sono state aggiunte secondo necessità, senza molto di un processo formale di progettazione. Il risultato è un linguaggio abbastanza utile e completo, ma non molto coerente da solo. L'immensa popolarità della lingua peggiora le cose; non appena viene introdotta una nuova funzionalità, è praticamente scolpita nella pietra, perché tutti iniziano a usarla. Alcuni errori di progettazione sono stati quindi consolidati e il team di PHP ha davvero difficoltà a convincere le persone a rinunciare a loro - register_globals e magic_quotes sono solo due esempi di cose che all'epoca sembravano buone idee ma che si sono rivelate dilagante.

Un altro fattore è la cultura che è cresciuta intorno a PHP. Quando la sua popolarità cominciò a crescere, il tipico caso d'uso per PHP consisteva nell'aggiungere piccoli frammenti di funzionalità lato server in documenti HTML statici. Una gran parte del pubblico di riferimento erano hobbisti e non programmatori che utilizzavano PHP per aggiungere un po 'di roba dinamica ai loro siti web statici. La cultura risultante è molto pragmatica, senza molto interesse a stabilire un "modo corretto"; mentre è possibile scrivere in PHP abbastanza eleganti, una gran parte della comunità di utenti non si interessa molto a questo, finché funziona.

Al contrario, linguaggi come Python, Ruby, Lisp, C #, Haskell e altri hanno avuto una filosofia fin dall'inizio, e generalmente la comunità la abbraccia e spinge la lingua a essere all'altezza. (Nel caso in cui sei interessato, digita import this in una sessione interattiva di python). Avere una filosofia significa che c'è una linea guida per l'uso e l'estensione della lingua, e porta anche a una comunità più omogenea - se non sei d'accordo con la filosofia, è più probabile che ti allontani e ne trovi una che si adatti meglio ; la comunità risultante ha maggiori probabilità di raggiungere un consenso su tutti i tipi di cose.

Detto questo, PHP ha punti di forza e punti deboli, oltre a oscuri casi limite; scrivere codice PHP idiomatico significa usare i punti di forza ed evitare le debolezze e le oscurità, proprio come con qualsiasi altra lingua.

    
risposta data 09.08.2011 - 13:45
fonte
15

Penso che quando la gente dice il modo PHP, abbia un peso negativo, è il termine che usiamo in un negozio di poligoni (Python, C #, Ruby). Come "just-do-it-and-throw-it-out lì", come in esso potrebbe avere goto, perdite di handle di file, vulnerabilità di SQL injection, loop nidificati super profondi, funzioni a 3000 linee e ancora classificati come ' PHP-way'. Se in una peer review qualcuno mi ha detto che il codice è molto 'PHP-way', sarei profondamente offeso.

Apprezzo che questo causerà delle fiamme, quindi riconoscerò che c'è gente che è nota per produrre un buon codice PHP, e PHP è usato in alcuni importanti siti di produzione. Sto solo dicendo quello che la folla pensa e vede più spesso, l'opinione è portata avanti dagli atti della maggioranza, non dalla minoranza.

    
risposta data 09.08.2011 - 08:16
fonte
4

Se c'è un "modo php" è "Just get it done!".

Sebbene php abbia tutti i moderni costrutti OO Classes, Modules Name Spaces, Introspection ecc. oltre a tutte le dotazioni di programmazione dinamica solitamente associate a linguaggi più fashoinable come Python. Raramente li vedi usati solo per il gusto di farlo, o, vedi i programmatori di php ossessionati dalla "purezza" della loro implementazione.

Non ho idea del motivo per cui dovrebbe esserci una tale differenza culturale - ma è lì.

Ci sono un sacco di orrori là fuori e questo forse riflette che tanto codice "php" è "My First Webapp" o anche "My First Program".

Personalmente trovo che sia piuttosto facile leggere / comprendere il codice php scritto professionalmente, in genere è molto più facile da leggere rispetto alle applicazioni Java con tutte le sue classi Factory e metà della logica nei file XML.

    
risposta data 09.08.2011 - 11:00
fonte
4

Direi che PHP è il "Duct Tape Programmer": spediscilo in fretta, spediscilo velocemente, preoccupati di tutto il resto e bug di patch veloci senza pensare al futuro. Anche se questo non è in alcun modo una condanna di PHP stesso (lo puoi fare in qualsiasi lingua), è solo di recente che gli sviluppatori di PHP hanno iniziato a interrogarsi sull'ingegneria del software e sui modelli di progettazione, SOLID, test e simili.

    
risposta data 09.08.2011 - 14:16
fonte
2

Direi che l'idea di PHP è pratica. Ciò che significa in ogni caso separato è difficile da definire, ma per esempio se fare qualcosa richiede un modulo HTML e cinque linee di codice, non mettere il framework MVC con 20 classi lì. E, viceversa, se si sviluppano applicazioni per 20 milioni di persone da utilizzare, inserire il framework e avere la logica, la presentazione e il controllo del flusso separatamente. Ma qui non c'è niente di speciale in PHP, quindi suppongo che potrebbe non essere una risposta soddisfacente.

Non penso che ci sia uno stile PHP. Personalmente penso che l'idea che ci sia uno stile che si adatti a tutti gli utenti della lingua ha senso solo se il linguaggio ha un campo di utilizzo molto limitato, il che non è assolutamente vero per PHP.

Le applicazioni specifiche hanno i loro stili - ad esempio, se si esamina Zend Framework, vedrai molto codice OO con interfacce definite, API controllate, ecc. in cui potresti facilmente riconoscere modelli di progettazione familiari. D'altra parte, ci sono applicazioni che adottano un approccio più procedurale, come Drupal.

Capisco che non ti dia molto del "vero stile PHP", ma probabilmente è perché non c'è niente del genere. Ci sono buone pratiche, ecc. Ma non è quello che stai cercando, temo.

    
risposta data 09.08.2011 - 09:01
fonte
1

Alcune persone usano php come segno di disdegno - solo un fatto, personalmente sono un fan.

Tuttavia per me la cosa che ha definito un approccio php è essenzialmente la mancanza di contesto applicativo. Non esiste un contesto applicativo integrato rispetto a .NET o al mondo Java.

Questo porta i server php ad essere essenzialmente privi di stato (a patto che le sessioni vengano spostate su un altro server, ad esempio un disco condiviso o un db)

Questo è più o meno quello che penso quando penso al modo php.

    
risposta data 09.08.2011 - 10:01
fonte
1

Un'altra risposta! Questa volta è più un'osservazione sulla "cultura" della programmazione.

PHP si trova nella stessa posizione di Javascript (ECMAscript to pedants!) era circa nel 2002. Un piccolo gruppo di programmatori esperti apprezzava la sua eccellenza. L'opinione generale era che si trattava di un linguaggio di scripting povero e oscuro, utile solo per i banner a scorrimento e fastidiosi utenti con popup.

Poi è arrivato AJAX e improvvisamente tutto il mondo ha ammirato la potenza e l'eleganza di Javascript.

Sebbene non sia così elegante come Javascript, php condivide gran parte della potenza e della semplicità di quel linguaggio, e c'è un consenso generale sul modo "corretto" di programmare php per sistemi di grandi dimensioni.

L'altro indicatore di quanto sia buono il php nella sua sfera specialistica è la mancanza di framework per le applicazioni più serie un sacco di programmatori molto esperti sono felici di usare semplicemente "php" così com'è senza aiuto di alcuni mega framework. La pura proliferazione di framework e altri aiuti mi indica che Java, Python, ecc., Non hanno capito bene e che i programmatori che usano questi linguaggi sono profondamente infelici e insicuri su come dovrebbe essere creata un'applicazione web. Tuttavia, quando vedono come viene utilizzato un codice php semplice per implementare con successo siti Web complessi senza le configurazioni XML illeggibili, il modello dialettale del mese o il roll del proprio dialetto ORM traggono la conclusione sbagliata - che il php deve essere male perché non ha classi IntegerFactory, dipendenze, ecc. ecc.

In realtà tutte queste cose sono facilmente implementabili in php e sono spesso utilizzate se necessario - è solo che l'implementazione è di solito un paio di linee di php e non è riconosciuta come tale dai programmatori che sono abituati a fare lo stesso cosa con enormi librerie e API complesse.

php è semplice. "semplice" è il complemento più alto che puoi dare a un software e il più difficile da ottenere.

    
risposta data 10.08.2011 - 04:06
fonte

Leggi altre domande sui tag