Qual è un buon modo per familiarizzare con PHP, proveniente da un background ASP.NET? [chiuso]


10

Attualmente, mi sento molto a mio agio con la creazione di strumenti / app Web in un ambiente ASP.NET. Non sto davvero cercando di lasciare tbh, poiché mi piacciono molto C #, ASP.NET, MVC 3, Visual Studio, ecc.

Tuttavia, in questo momento non so quasi nulla di PHP e sembra una carenza che mi piacerebbe correggere.

Ci sono libri (o altri metodi di apprendimento) che potrebbero essere una buona risorsa per imparare il PHP? Ovviamente ci sono molti libri PHP iniziali, ma sono già a mio agio con gran parte di ciò che è coinvolto nella costruzione di una pagina Web e sono interessato a concentrarmi sullo stesso PHP che potrebbe non essere compatibile con lo scopo di alcuni libri PHP iniziali.

Ho esaminato un po 'il manuale di PHP e non sembra scorrere in modo fluido come potrebbe essere l'ideale. C'è un libro PHP iniziale che sarebbe appropriato? Mi manca la coesione che la maggior parte dei libri contiene guardando attraverso quei campioni. Ci sono molte più informazioni, ma sembra più un riferimento durante la codifica che un veicolo di apprendimento primario.


5
Perché pensi che non conoscere PHP sia una carenza che devi correggere. Conoscere Rails, Django, J2EE, node.js, ecc. Non è una carenza che è necessario correggere? Esiste davvero una domanda per te di conoscere e utilizzare PHP nella tua attuale linea di lavoro?
Raynos,

1
@Raynos Beh, la popolarità di php è maggiore di rails, django, node.js combinati ...
yannis,

Perché (non una fiamma) vuoi migliorare con PHP? È per imparare a svilupparsi in un ambiente più dinamico, interpretato o più solo perché così tanto è là fuori?
sbrenton,

1
@Raynos - quota di mercato. Le probabilità che alcune conoscenze su php siano utili per confrontare soluzioni, valutare un problema, aiutare un amico, ecc. Sono superiori agli esempi che hai elencato imo. Non desidero allontanarmi da asp.net, quindi conoscere l'ambiente "migliore" alternativo è meno utile che conoscere il più popolare.
Eric,

1
Entra in MVC3 che potrebbe essere un buon primo passo
Daniel Little il

Risposte:


7

La migliore risorsa là fuori per imparare PHP è il manuale di PHP . È estremamente ben scritto e ben strutturato, ed è una delle risorse più importanti della comunità PHP. Se sei sicuro di ASP.net, il manuale è sufficiente per iniziare.

Prima di iniziare a leggere, tuttavia, è necessario impostare uno stack PHP. Puoi installare Apache, PHP e il tuo database preferito (SQLServer va bene) da solo (è estremamente facile) oppure puoi impostare uno stack pronto come XAMPP . XAMPP installerà:

tutto in una volta (più alcune altre cose). Una libreria importante che manca è phpUnit , che ovviamente ti aiuterà con i test unitari.

Quindi dovresti installare un IDE, le tue scelte ovvie sono Eclipse Classic con PHP Development Tools (PDT) o Netbeans per PHP . Ce ne sono molti altri, ma questi due lo consiglio. Li uso entrambi, se non riesci a scegliere tra loro Netbeans è un po 'più facile da capire, ma dovresti davvero valutare entrambi e decidere tu stesso quale è meglio per te - non ho lavorato con Visual Studio in molto tempo e davvero non so quale IDE possa sentirti più familiare.

Quando si superano le nozioni di base dal manuale, è necessario iniziare a pensare a un framework MVC. Ancora una volta, consiglierò due:

Zend Framework è la bestia e CodeIgniter è la bellezza, se mi permetti una stupida metafora. Zend Framework ha una ripida curva di apprendimento, è supportato da Zend (la compagnia dietro PHP ) e puoi farci quasi tutto. CodeIgniter è molto più facile da capire, ha una buona documentazione per i principianti ed è abbastanza popolare. Ma la maggior parte del suo codebase è una merda obsoleta, in quanto supportava PHP4 non molto tempo fa.

Per un principiante la scelta ovvia è CodeIgniter, ma non rimanere bloccato con esso. Usalo come strumento di apprendimento e passa a Zend Framework il prima possibile. Ancora una volta ci sono molti più framework MVC nel mondo PHP, ma questi due sono quelli che raccomando.

Per quanto riguarda i libri, un ottimo libro per non principianti è PHP Objects, Patterns and Practice . SitePoint 's libri PHP sono sempre un piacere da leggere. Se ti innamori di PHP, dovresti davvero prendere in considerazione un abbonamento a PHP Architect .

Infine, dai un'occhiata a questa grande discussione su motivi puramente tecnici per PHP come prima scelta .


Aggiornamento: alcune altre risorse online, destinate principalmente ai non principianti:

e se per qualche strano motivo vuoi giocare con PHP su IIS invece di Apache, un buon punto di partenza è il PHP di Microsoft su Windows . PHP su IIS funziona ed è una scelta valida soprattutto per uno sviluppatore .Net, ma dovresti davvero andare con Apache (e MySQL o PostgreSQL invece di SQLServer) per ottenere l' esperienza PHP completa e anche garantire che le tue abilità siano portabili a qualsiasi altro popolare OS. Non vuoi perderti la gioia di mod_rewrite .


Nota personale: c'è molto odio in giro per PHP, in parte è giustificato . Se decidi di farlo, devi essere estremamente critico nei confronti delle varie risorse, script, librerie PHP che incontrerai lungo la strada, c'è troppa schifezza là fuori ed è impossibile per un principiante conoscere la differenza. La grande popolarità di PHP può essere tradotta in una comunità molto grande e utile, grande commerciabilità delle tue abilità, milioni e milioni di blog, ma può anche essere tradotta in poche migliaia di terabyte di codice scadente.


2

Yannis ha molte cose buone da dire lì, ma ho letto, Costruisci il tuo sito web basato su database, 4a edizione , ed era pieno di tutto ciò che avevo bisogno di sapere per iniziare sulla strada giusta per lo sviluppo di applicazioni Web PHP professionali.

Stavo anche lavorando esclusivamente su .NET prima di iniziare a lavorare in PHP. PHP è molto più facile da lavorare, ma presenta alcuni problemi peculiari nello sviluppo di applicazioni su larga scala e questo libro ti dà inizio.

Un problema per me era che il modo in cui PHP non è strettamente un linguaggio orientato agli oggetti. Ha ogni sorta di funzioni in forma procedurale e in forma orientata agli oggetti e richiede un po 'di tempo per abituarsi, proveniente da una lingua in cui tutto è organizzato in classi e spazi dei nomi.

Un altro è stato la facilità con cui puoi mescolare tutto in PHP, rendendo le cose molto più difficili. In .NET gli strumenti che usi, come Visual Studio, ti guidano a mettere in pratica dei buoni standard di codifica facendo parte del lavoro per te. Di solito una pagina aspx dovrebbe avere il suo markup HTML e il codice C # separati in due file.

Se sei un utente pesante degli strumenti .NET e preferisci lavorare con i controlli ASP.NET, un altro problema è la mancanza di controlli (GridView ecc.) In PHP. So che ci sono molte librerie / framework che ti danno qualcosa di simile ma non fanno esattamente parte del pacchetto PHP di base.

Un altro problema per me è stato il modo in cui in PHP si fa largo uso di array e hash che servono più come raccolte in .NET. Sono ovunque e sarebbe utile abituarsi al fatto che le matrici non sono solo un elenco ordinato dello stesso tipo di oggetti / unità scalari. Possono server come oggetti di raccolta per ospitare tutti i tipi di cose.

Posso andare avanti all'infinito, ma per menzionare una delle cose più importanti che ho trovato molto peculiare di PHP (non so che potrebbe essere comune anche in altre lingue), è la frequenza con cui vengono utilizzate le funzioni "include" (e relative) così comunemente. Posso dire che il libro di Sitepoint può metterti al passo con tutto questo.


Nella mia risposta ho un link ai libri di php di Sitepoint, sono tutti eccellenti. Potresti ampliare un po 'la tua risposta per dirci peculiar issues when developing large scale applicationsche hai identificato? Dato che hai uno sfondo .net come opzione, sarebbe utile sapere cosa pensano le persone .net di php.
yannis,

OK Yannis, uno dei problemi per me è stato il modo in cui PHP non è strettamente orientato agli oggetti, aveva tutti i tipi di funzione in forma procedurale e forma orientata agli oggetti e ci vuole un po 'di tempo per abituarsi a venire da un linguaggio così organizzato in non solo in solo classi ma tutti quegli spazi dei nomi e tutto il resto.
tsega,

Hmmm, questo è un problema generale, non solo when developing large scale applications. Ad ogni modo, stavo pensando di più a problemi concettuali e di approccio, come PHP adotta un approccio completamente diverso da .Net su problemi di ridimensionamento, qualcosa del genere. Ho poca esperienza con .Net, quindi sarei interessato a scoprire cosa trovano concettualmente peculiari le persone .Net quando arrivano in PHP. Ma cose come il fatto che PHP sia multi-paradigma sono ovviamente prevedibili.
yannis,

1
In termini di approcci, la maggior parte degli sviluppatori ASP.NET tende a utilizzare controlli personalizzati (componenti - che sono una combinazione di controlli HTML con Javascript e codice lato server) per sviluppare le loro applicazioni "su larga scala" (ad alta intensità di dati). Ciò è dovuto principalmente al fatto che la maggior parte degli sviluppatori ASP.NET è passata allo sviluppo Web dallo sviluppo di applicazioni desktop utilizzando quasi gli stessi strumenti. Pertanto, la maggior parte cerca modi per tradurre le proprie capacità già acquisite di lavoro con controlli personalizzati per adattarsi allo sviluppo web.
Tsega,

Un ottimo IDE da ottenere con questo libro è Netbeans . Il debug di PHP è buono come si arriva.
Tsega,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.