Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    26

    Creare un proprio cms in - php

    Salve a tutti, ho sempre realizzato siti web sfruttando diversi tipi di CMS trovandomi sempre bene.
    Bisogna dire che da qualche anno, grazie agli strumenti che si trovano online, ormai chiunque potrebbe creare un sito e metterlo online senza investire 1 euro.

    Di certo le cose fatte da chi non ne capisce niente saranno sicuramente meno funzionali ed efficaci.

    Più utilizzo i cms, più mi rendo conto che mi stanno viziando, sicuramente mi tolgono molto lavoro di programmazione facendomi concentrare più sul design, ma allo stesso tempo quando devo fare una personalizzazione a livello di programmazione all'interno del CMS, che sia Joomla, Wordpress o Prestashop, vado leggermente in confusione, anche se poi alla fine riesco, pur applicando soluzioni spartane.

    Questo perchè non avendoli costruiti io, potrei incappare in codici, troppo complessi da cui non riesco a capire la logica.

    Utilizzerò sempre i cms, questo è chiaro, però allo stesso tempo volevo iniziare a costruirmi un proprio cms, incominciando dalla base, costruendolo mattone dopo mattone, cosi che avendo chiaro la struttura, posso farlo evolvere in qualsiasi cosa io voglia(e tutto dipenderà dalle mie conoscenze).

    Con le conoscenze che ho adesso, potrei iniziare a creare un mio cms, ma non avendolo mai creato, ho paura di sbagliare il metodo con la quale si deve creare.
    Perchè il mio scopo è di renderlo il più pulito possibile.

    Non cerco una scorciatoia ma la strada più giusta da percorrere.

    Parlo con te che sei un programmatore:
    1) Per iniziare la costruzione di un cms, mi occorre partire già da una base o devo partire da 0?
    2) Tu che base utilizzi?
    2) Devo utilizzare un framework in particolare?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    CMS/BLOG/E-Commerce/Bulletin Board

    Tu quali di questi vuoi sviluppare?

    Comunque Wordpress e Prestashop non mi sembrano così complicati, magari è un pò un casino perchè il primo tiene tutte le funzioni organizzate in diversi file per poi richiamare e a volte ti perdi... Prestashop mi sembra programmato da un bambino, e come organizzazione del codice lo trovo pessimo.

    Joomla si, è un bel casino, oltretutto utilizza metodi, imho inutili, come la formattazione e il caricamento dei pacchetti linguistici.
    Metterli in un database, file xml o semplicemente .php gli faceva schifo...
    Però c'è da ammettere che anche se hanno voluto complicare di molto le cose, ci puoi frare realmente di tutto, cosa che quasi nessun cms ti permette.

    Poi dovresti specificare meglio "cosa vuoi fargli fare".
    Un CMS come Joomla differisce anche troppo da un php-fusion o un php-nuke (il primo realmente di facile interpretazione, mentre il secondo fa abbastanza schifo come architettura, però è semplice anche quello).

    Comunque se sei interessato ad una programmazione avanzata (cioè ad oggetti) sicuramente non riuscirai mai a creare nulla di "semplice", soprattutto se sai programmare bene e ti metti a definire tutto con accuretezza comprese le interfacce etc...

    Se sei interessato a qualcosa di semplice ma ben organizzato ti posso consigliarti di vederti i sources di punbb e vedere come è organizzato, sai sempre dove mettere le mani... Se quello è il tuo ideale puoi sviluppare la tua applicazione con quello stile di programmazione.

    Se invece sei un programmatore ad oop avanzate puoi prendere spunto da woltlabb che attualmente reputo la migliore applicazione programmata in oop come cms, e vederti soprattutto la gestione del core (compatibilità con caratteri speciali e gestione dei diversi caratteri di codifica, gestione delle sessioni, benchmark, cache) a differenza di ipb che il source è uno schifo perchè nessuno gli ha spiegato che programmare ad oggetti non vuol dire solo imparare cosa fanno e come funzionano certe cose e buttarle tutte dentro a caso per far vedere che è programmato a oop.
    Poi vabbe vb che è sicuramente un ottimo cms, mezzo oop mezzo no, ma tutto sommato rispetto la loro scelta che permette anche ad un utente meno esperto di comprendere il source.

    Comunque se vuoi fare un lavoro in grande, ma con architettura semplice:
    - Punbb per l'organizzazione del codice e della cache (salva in array la cache della configurazione, smilies in file .php con var_export e poi invece di eseguire le query include i file, puoi immaginare come invece di eseguire 20 query in meno cambi le prestazioni del cms)
    - Wordpress per i seo-urls e la compatibilità con i diversi server (per esempio fixa alcune variabili _SERVER come nessun'altro)
    - phpbb per le classi per compatibilità con caratteri utf8 (per studiarle e magari riscriverle) (Wordpress se non sbaglio utilizza le classi utf8 di un framework che utilizza anche punbb, che poi è stato riscritto da phpbb per evitare di far vedere che hanno utilizzato codice altrui, ma del resto a questo mondo è tutto un copia-copia, basta vedere il class-core di mybb e confrontarla con quella di vb, si prendono tutti spunto a vicenda)
    - Joomla per la gestione dei contenuti (ma evitando come la peste le loro stramberie inutili che penso puoi comprendere da solo semplicemente chiedendoti: ma perchè fanno così se esistono metodi più facile per fare lo stesso?)

    Poi ti consiglio di non prendere spunto da quei cms che inseriscono cose inutili e complicano la vita agli utenti come te. Per esempio una volta ho letto il cms di smf, l'eden dell'inutilità (non sto dicendo che non è un buon cms, se qualcuno si offende, ma che ha tante di quelle cose inutili, e l'organizzazione del codice è probabilmente delle peggiori) come la possibilità di scegliere diversi tipi di cache (funzioni memcache, cache files e altre che non ricordo). Mi domando se i developers si sono chiesti se il 95% di colore che avrebbero utilizzato il loro cms fossero stati in grando di settare quelle impostazioni (ti giuro che io nonostante abbia letto tantissimi source code non so se sia meglio salvare la cache in flat file o tramite le funzioni di memcache, anche se immagino flat file).

    Ultime due cose che ti consiglio sono "creare un cms intuitivo" (Joomla non lo è, bisogna lavorarci molto per capire come gestirlo) e renderlo veloce organizzando in maniera diversa il codice di come fanno ora (si un codice organizzato in 300 file diversi precisi, per poi richiamare altre 300 volte la stessa funzione invece di salvare il risultato, è più carino, lo ammetto, ma io odio il tempo di caricamento che impiega wordpress per visualizzare una pagina).

    Navigare sul forum di html e impiegare 2-3 secondi per ottenere il caricamento completo della pagina mi da quasi fastidio, quando ci sono applicazioni che come le apri le vedi.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    26
    Esiste una risposta più professionale di questa?
    Ahaha Grazie di cuore Zacca, sei stato molto chiaro e preciso.

    Come ho detto prima, ho sempre utilizzato cms come Joomla, Wordpress e Prestashop.
    Installarli è la cosa più facile di questo mondo, ma snellirli e personalizzarli a tal punto da renderli veloci e facili da gestire un po meno.

    Come dici tu, con joomla puoi fare di tutto, è da 4 anni che lo utilizzo creando più di una quarantina di siti di cui e-commerce, booking online, social-network ecc ecc. Riuscendo anche a personalizzare moduli a mio piacimento, rimanendo però costretto ad adattarmi un pochino al codice, cercando di non uscire troppo dagli schemi che joomla mi pome per mancanza di conoscenza.

    Wordpress è molto più leggero, lo utilizzo quando devo fare siti vetrina di poche pagine, il database confronto a quello di joomla è praticamente ridicolo, cerco sempre di stare attento a cosa installo, così da mantenere il sito il più leggero possibile.

    Prestashop l'ho utilizzato per creare dei semplici e-commerce, e non ho avuto problemi, e anche se è un CMS open source, ha praticamente tutti i moduli a pagamento, anche i più insignificanti. Mi è capitato di creare un sito con prestashop, con una personalizzazione avanzata del prodotto, ovvero la possibilità di dare al cliente gli strumenti per personalizzare graficamente il prodotto, tipo vistaprint. Ho dovuto collaborare con altri due programmatori per 1 anno, per creare un modulo che potesse integrarsi con prestashop e che potesse soddisfare queste esigenze, ho avuto diversi problemi riguardo il sistema di combinazioni che utilizza prestashop, costringendomi ad acquistare un modulo di 150€ che mi permetteva di cambiare questa sua gestione degli attributi.

    I motivi per il quale voglio creare un cms mio, sono diversi:
    1) Sicuramente per imparare cose nuove, il funzionamento e l'importanza della programmazione ad oggetti.
    2) Per offrire al cliente un cms snello, con sole le funzionalità richieste.
    3) Per avere la massima personalizzazione. Se una cosa la creo io riesco sicuramente a gestirla meglio.
    4) La velocità, anch'io odio i tempi di attesa delle pagine, che siano 2 o 3 secondi.

    Woltlabb, Punbb e Phpbb non li ho mai utilizzati, sono sempre dei cms pronti e per quello che ho letto si concentrato per la creazione di forum. Adesso vedo come sono strutturati a livello di codice.

    Io pensavo di partire con un contenitore base, anche senza grafica, che si limitasse a inserire solamente articoli e che gestisse la registrazione degli utenti. Cosi da avere già una struttura sistemata per come dio comanda, e a quel punto avrei incominciato a inserire nuove funzioni, come ad esempio la possibilità di inserire un immagine profilo al momento della registrazione, oppure di creare una slide dinamica, ecc...

    L'importante partire con una solida struttura.

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Quote Originariamente inviata da Freux Visualizza il messaggio
    ...
    I motivi per il quale voglio creare un cms mio, sono diversi:
    1) Sicuramente per imparare cose nuove, il funzionamento e l'importanza della programmazione ad oggetti.
    2) Per offrire al cliente un cms snello, con sole le funzionalità richieste.
    3) Per avere la massima personalizzazione. Se una cosa la creo io riesco sicuramente a gestirla meglio.
    4) La velocità, anch'io odio i tempi di attesa delle pagine, che siano 2 o 3 secondi.

    Woltlabb, Punbb e Phpbb non li ho mai utilizzati, sono sempre dei cms pronti e per quello che ho letto si concentrato per la creazione di forum. Adesso vedo come sono strutturati a livello di codice.

    Io pensavo di partire con un contenitore base, anche senza grafica, che si limitasse a inserire solamente articoli e che gestisse la registrazione degli utenti. Cosi da avere già una struttura sistemata per come dio comanda, e a quel punto avrei incominciato a inserire nuove funzioni, come ad esempio la possibilità di inserire un immagine profilo al momento della registrazione, oppure di creare una slide dinamica, ecc...

    L'importante partire con una solida struttura.
    Allora io ti consiglierei di partire da un framework, che è esattamente ciò che stai cercando, solo uno scheletro attorno a cui costruire tutta la tua applicazione.
    I framework non ti mettono nativamente a disposizione funzionalità quali gestione utenti (in realtà qualcuno si, ma pochi) e articoli, ma permettendoti di costruire un sito tramite moduli (non come li intende Joomla o WP o altri CMS) tra loro indipendenti, puoi trovarli realizzati da qualcun altro, poi il resto te lo puoi creare da solo rispettando le regole imposte dal framework scelto.

    Il problema ora è scegliere il framework che più si addice ai tuoi gusti.
    I principali sono:
    - ZendFramework 2, riconosciuto dai più come il più completo, considerato pachidermico nella sua prima versione, ora sembra essere molto più snello e reattivo anche se un po' ostico da padroneggiare.
    - Symfony 2, anche di questo se ne parla molto bene ed è molto utilizzato
    -Yii, buon framework anche questo
    - CodeIgniter 2, è un framework estremamente semplice da imparare e largamente utilizzato, di contro non offre diverse funzionalità dei framework più completi, come ad esempio un ORM, altra nota negativa è che il suo futuro supporto è a rischio, attualmente chi lo gestisce è in cerca di qualcuno che gli subentri e se non dovesse farsi avanti nessuno verrà abbandonato (ipotesi comunque poco probabile vista la diffusione, ma non si sa mai)
    - Laravel, da un po' di tempo sta salendo alla ribalta, molti che usavano CodeIgniter stanno passando a questo

    Poi ce ne sono anche altri ovviamente, ma i più usati penso siano questi; comunque qui puoi trovare molti framework messi a confronto
    http://socialcompare.com/en/comparis...rks-comparison

    EDIT: dimenticavo, alcuni framework ti costringono ad mettere online i tuoi siti su dei server virtuali o server dedicati perché richiedono impostazioni del server non standard e quindi devi avere accesso a tali impostazioni.
    Ultima modifica di Alhazred; 29-04-2014 a 10:53

  5. #5

    Come modellare il database velocemente

    Se volete fare un blog velocemente dovrete evitare di aprire PHPMyAdmin mille volte per allineare le tabelle del vostro dopo database dopo aver midificato il codice! Perchè diciamola tutta il database parte in un modo e poi finisce per essere infinito con mille campi! (La frase cult: "mi bastano tre tabelle è ciò tutto") quindi vi consiglio di usare questa libreria http:// se vi connettere al database e dichiarate le vostre classi da salvare in db automaticamente non appena aggiungete un campo nella classe la libreria aggiungerà una campo con giusto tipo di dato e la giusta lunghezza diciamo che è quasi magia! del tipo hai bisogno di una tabella per storare gli utenti ti basta definire una classe utenti e utilizzarla nel tuo codice ed il sistema provvedera a sincronizzare nel giusto modo il database.

    Ciao


    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Allora io ti consiglierei di partire da un framework, che è esattamente ciò che stai cercando, solo uno scheletro attorno a cui costruire tutta la tua applicazione.
    I framework non ti mettono nativamente a disposizione funzionalità quali gestione utenti (in realtà qualcuno si, ma pochi) e articoli, ma permettendoti di costruire un sito tramite moduli (non come li intende Joomla o WP o altri CMS) tra loro indipendenti, puoi trovarli realizzati da qualcun altro, poi il resto te lo puoi creare da solo rispettando le regole imposte dal framework scelto.

    Il problema ora è scegliere il framework che più si addice ai tuoi gusti.
    I principali sono:
    - ZendFramework 2, riconosciuto dai più come il più completo, considerato pachidermico nella sua prima versione, ora sembra essere molto più snello e reattivo anche se un po' ostico da padroneggiare.
    - Symfony 2, anche di questo se ne parla molto bene ed è molto utilizzato
    -Yii, buon framework anche questo
    - CodeIgniter 2, è un framework estremamente semplice da imparare e largamente utilizzato, di contro non offre diverse funzionalità dei framework più completi, come ad esempio un ORM, altra nota negativa è che il suo futuro supporto è a rischio, attualmente chi lo gestisce è in cerca di qualcuno che gli subentri e se non dovesse farsi avanti nessuno verrà abbandonato (ipotesi comunque poco probabile vista la diffusione, ma non si sa mai)
    - Laravel, da un po' di tempo sta salendo alla ribalta, molti che usavano CodeIgniter stanno passando a questo

    Poi ce ne sono anche altri ovviamente, ma i più usati penso siano questi; comunque qui puoi trovare molti framework messi a confronto
    http://socialcompare.com/en/comparis...rks-comparison

    EDIT: dimenticavo, alcuni framework ti costringono ad mettere online i tuoi siti su dei server virtuali o server dedicati perché richiedono impostazioni del server non standard e quindi devi avere accesso a tali impostazioni.
    Ultima modifica di Alhazred; 14-07-2014 a 10:31

  6. #6
    Quote Originariamente inviata da Freux Visualizza il messaggio
    Parlo con te che sei un programmatore:
    1) Per iniziare la costruzione di un cms, mi occorre partire già da una base o devo partire da 0?
    2) Tu che base utilizzi?
    2) Devo utilizzare un framework in particolare?

    Grazie
    1) puoi partire da entrambi, "dipende" da te..
    2) io mi sono scritto tutto da me.. la base è php
    3) no non devi, puoi, se vuoi.. ma non devi..
    Questa volta, più che un voto.. è favoreggiamento.

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Quote Originariamente inviata da cicciodarkast Visualizza il messaggio
    Se volete fare un blog velocemente dovrete evitare di aprire PHPMyAdmin mille volte per allineare le tabelle del vostro dopo database dopo aver midificato il codice! Perchè diciamola tutta il database parte in un modo e poi finisce per essere infinito con mille campi! (La frase cult: "mi bastano tre tabelle è ciò tutto") quindi vi consiglio di usare questa libreria http:// se vi connettere al database e dichiarate le vostre classi da salvare in db automaticamente non appena aggiungete un campo nella classe la libreria aggiungerà una campo con giusto tipo di dato e la giusta lunghezza diciamo che è quasi magia! del tipo hai bisogno di una tabella per storare gli utenti ti basta definire una classe utenti e utilizzarla nel tuo codice ed il sistema provvedera a sincronizzare nel giusto modo il database.

    Ciao
    Cosa c'entra il tuo intervento?
    Non mi pare che sia inerente l'argomento trattato nella discussione.

    Solo spam per il link che ti ho editato suppongo.

  8. #8
    Ciao,
    Mi ci sono cimentato anche io nella creazione di un piccolo cms e devo dire che mi è venuto anche discreto
    Puoi vederlo nel mio repo github, si chiama SlimBlog.
    Utilizza un microframework per avere una gestione più organizzata del codice, basta che leggi il readme nel repo e avrai qualche dettaglio in più

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.