Newsgroup: it.comp.www.php
Titolo: Usare un framework, scelta obbligata?

Salve,
 
l'anno scorso ho seguito un corso per avere i primi rudimenti di 
programmazione php, database Mariadb, etc. ho incontrato a distanza di 
un anno un compagno di corso che mi ha parlato della sua esperienza 
molto positiva con Simfony facendomi capire che senza di esso (aka senza 
un framework) la programmazione php nuda e cruda sarebbe una grossa 
perdita di tempo.
 
Voi che ne pensate?
 
Saluti.
^Bart

 ha scritto:

Una puttanata.
 
Se hai  un progetto di grosse dimensioni, dove sono necessari degli
aggiornamenti continui in termini di sicurezza e sopra a tutto è un
progetto scalabile, ovvero dove dovrai prevedere di implementazioni;
allora magari usi un framework, meglio se stabilisci con chi lo
sviluppa un contratto di aggiornamento e assistenza, cosi che ti
occupi solo di aggiornare le tue implementazioni. 
Raccomandazione minimo VSP, in cui hai accesso al sistema.
 
 
Per progetti piccoli, oramai i CMS, sono obbligatori, perchè con un
template ti levi tutta la parte di sviluppo grafico, i clienti
richiedono il plugin più idioti e gli effetti speciale più
sbalorditivi, che peggiorano solamente il progetto, ma li chiedono.
 
per progetti piccolo professionali, te li scrivi a manina, in maniera
che ti levi una valangata di codice inutile, almeno che non hai
intensione di ricompilare parte del codice del framework, sei
svincolato da plugin, e procedure di installazione e hosting; perchè
magari se il cliente ti mette davanti un hosting di merda voglio vedere
come ce lo fai girare il framework, se manca la libreria x di php, o il
settaggio y, o peggio alcune parti le devi caricare con npm, o phar e
varie.
 
In teoria tutto semplice, ma poi semplice una pippa..
 
A manina aggiusto tutto come mi pare e metto solo l'indispensabile.
 
Questa almeno è la mia esperienza. 
 
Enrico 
 

 
 
 
non so che tipo di lavori fai con php, ma per progetti anche piccoli 
(che non siano il solito sito vetrina fatto con joomla o wordpress) che 
non considero sviluppo, ma parlo di web application, REST Api, backend 
M2M, io utilizzo un framework, non mi metto a reinventare la ruota
non mi metto a scrivere palate di classi per gestire il routing o il 
middleware, piuttosto che la validazione dell'input, o l'astrazione per 
l'accesso ai dati (che sia db, altre chiamate ad api esterne, risorse su 
filesystem ecc) o riscrivere la gestione dell'output (che a secondo 
della chiamata (web, app mobile, M2M, ecc ) può ritornare html, json, 
xml, su stampante, uno streaming, pdf ecc)
non mi rimetto a scrivere il pattern MVC piuttosto che MVVM, utilizzo il 
framework più adatto per il progetto.
 

 il framework più adatto per il progetto.
 
NB.  probabilmente non sono abbastanza capace io  a far girare
framework ovunque, posso mettere in conto anche questo. 
 
ma è li che ti ci voglio.. spesso la scelta del framework, è già uno
studio importante, che spesso non si adatta alle esigenze del cliente,
ne tanto meno al budget.
 
Ovvero il cliente vuole una bella grafica e essere Incu.. dai
commerciali, che gli danno pacchetti di SEO, SEM,  Fcebook, adwords, 
in maniera abbastanza nebbiosa, ovvero un cazzo, spendendo poco, perchè
sono "furbi", hanno fatto le somme e le differenze di tutti i
preventivi, pur non sapendo cosa c'è scritto.
 
Con il tecnico non ci parlano, per non fare incazzare ne il cliente nel
il tecnico ci mettono di mezzo un project manager, che racconterà un
monete di fuffe a gente che ha in mano 30 preventivi da agenzie di
varia provenienza. 
 
Sul frame work spesso non ci sono template da mostrare al cliente,
quindi hai un costo ulteriore di sviluppo di grafica, oltre che lo
studio del framework collegato alla sistemistica a disposizione.
 
C'è da capire la compatibilità dell'hosting del cliente che
pensando di essere furbo ha speso 15,00 euro su un hosting  di cui non
capisce assolutamente niente; magari gli hanno proposto un bellissimo
ecommerce  con wordpress e woocommerce, su un hosting condiviso da 2
mb, quando ce ne vuole 4 per far giare tutto correttamente; hanno 3000
giubbotti in casa che non sanno come vendere, ma gli hanno raccontato
che basta aprire u ecommerce con due euro.
 
per progetti piccoli  dove non c'è sistemistica, non mi metto a
diventar scemo per studiare il framework da montarci sopra;  con il
rischio che poi il catalogo non funzioni perchè manchi una librerie nel
sistema; scrivo in php. se lo script usa una funzione non compatibile,
cambio script, cambio strada.
 
Ergo.. se on ci sono soldoni, no framework.
 
Enrico 
 
 

Il 07/08/20 16:29, Enrico Maria Chellini ha scritto:

un framework non è un di più che dai al cliente, ma una mano che serve a te.
 
la gestione delle mail, la validazione dell'input, il routing delle 
richieste, l'accesso al db, la gestione dell'output o altro che ti viene 
in mente, non lo scrivi ogni volta.
hai delle classi che ti da il fw che ti agevola in queste operazioni che 
sono sempre le stesse, ripetitive e noiose.
 
prendi una form di input, si deve controllare che il dato ricevuto sia 
conforme alle aspettative, quindi un campo numerico, piuttosto che lungo 
un minimo e massimo di caratteri (come il CAP ad esempio), validare il 
campo email che contenga effettivamente un email, e che magari hai 
necessità di bannare una serie di domini (ad esempio le temporary 
email), oppure che esista la suddetta via nel campo indirizzo ecc..
utilizzo la classe che mi mette a disposizione il fw per fare tutti 
questi controlli, non mi metto a scrivere la validazione per ogni 
singolo campo di tutte le form del progetto.
se il suddetto controllo passa, vado avanti con le operazioni che devo 
fare altrimenti ritorno il messaggio di errore.
 
stesso dicasi per l'invio di email, chiamo la classe del fw, setto i 
parametri e invio, non scrivo ogni volta il codice.
 
per svincolare la gestione della Business logic dalla presentazione nel 
pattern MVC, utilizzo il template engine del FW, in modo che mi possa 
concentrare nello sviluppo core, e scegliere successivamente che tipo di 
grafica ci voglio sopra e posso cambiarla senza riscrivere tutto.
 
per l'accesso al db non scrivo ogni volta la connessione al db, la 
gestione degli errori, il check se il dato è gia presente ecc.
chiamo la classe/libreria del fw che si occupa di fare queste cose, 
l'unica cosa che mi devo preoccupare è indicare i parametri del db, e mi 
concentro sullo scrivere le query necessarie di lettura e scrittura dei 
dati (non mi piaccio gli ORM)
 
per il recupero delle risorse come ad esempio foto, pdf, file vari, 
chiamo la classe che si occupa della gestione del filesystem, gli indico 
la cartella o la posizione nella configurazione e poi chiamo i vari 
metodi  all'interno del progetto per il recupero dell'informazione, così 
non mi devo preoccupare di sapere se la tale risorsa si trova in locale, 
su google drive, AWS o da altra parte.
 
per farti un esempio questo è un progetto che ho fatto diverso tempo fa 
(non più utilizzato, anzi mai partito seriamente ahime)
 
www.feelchef.com
 
user : 
te...@feelchef.com
 
pass : test123
 
e qui puoi trovare alcuni file di codice del progetto
 
https://github.com/princo121/Feelchef
 
 

 
 
Credo che alla fine siamo sulla stessa linea, questo non è un catalogo
on line, dove ci metti i prodotti, con blog e finita li; è un progetto
più complesso con area riservata etc.., che magari svolgi meglio con un
framework.
 
Rimane che se non hai una sistemistica decente, almeno per me, diventa
difficile anche installarlo un framework, oltre che farlo giare a un
livello decente; te sai che da qualche anno i motori di ricerca
penalizzano i siti lenti; google chrome addirittura te lo etichetta
come lento
 
https://www.investireoggi.it/tech/google-chrome-il-bollino-sul-browser-per-etichettare-i-siti-lenti/
 
 
 
 
Enrico