Il miglior approccio per sviluppare / distribuire il modulo proprietario

1

Ho lavorato a un brainstorming per un po 'riguardo all'approccio migliore per distribuire i moduli closed-source. Vorrei menzionare che ho trovato domande simili su siti SE, ma non penso che questo sia esattamente lo stesso scenario.

Diciamo che ho scritto un insieme di classi PHP ben testate che ho usato come nucleo per più progetti (il copyright è mio). Ha EntityManager, ACL, ORM, Cacheing configurabile, Funzionalità del pannello di amministrazione di registrazione delle azioni ecc. Che può essere molto utile in qualsiasi progetto basato su database. (Non iniziamo argomento per quanto riguarda l'integrità del progetto stesso;)

Il mio piano è di implementare SAAS con l'attuale serie di funzionalità, ma il problema è che la maggior parte delle persone che ho discusso vorrebbe fosse ospitata nei loro server e non mi dispiacerebbe pagare una piccola quota di fedeltà ricorrente. Ciò porta alla domanda finale di scegliere il modo migliore di distribuire tale modulo / micro-quadro.

Ho trovato le seguenti opzioni da considerare:

Estensione PHP : La prima soluzione che arriverà a chiunque è di sviluppare e distribuire come estensione php standard (che controllerà il codice di licenza valido nella cache una volta ogni tanto e un cronjob aggiornerà periodicamente la licenza dal server di licenza). Ho controllato php-cpp.com riguardo questo e mi è sembrato piuttosto impressionante. Una delle maggiori difficoltà è che l'estensione dovrebbe essere in grado di parlare a mysql / redis ecc (basato sulle configurazioni trasmesse per istanziare l'oggetto) da solo. Al momento, le attuali classi di php utilizzano l'estensione MySQL e PHPRedis. Mi piacerebbe poter aggiungere funzionalità di Mongodb, Cassandra / ElasticSearch nel prossimo futuro. Non sono sicuro di come potrebbe essere raggiunto. Se qualcuno può far luce su come un'estensione può eseguire internamente una query mySQL, sarebbe di grande aiuto.

Zephir : Ho visto alcuni benchmark delle prestazioni e Phalcon è uno dei migliori concorrenti. Il principale vantaggio per me è che Zephir è php-like e ci vorrà molto meno tempo rispetto alla scrittura dell'estensione C ++. Ma guardando i forum di discussione, sembra che Zephir sia un po 'crudo. Quando sarà pronto per la produzione, php stesso introdurrà PHP7 / NG . Inoltre, la stessa difficoltà nella scrittura dell'estensione è presente qui.

HHVM : Probabilmente, la migliore soluzione in quanto converte tutto in byte-code e non dovrò preoccuparmi della difficoltà dell'estensione qui. Ma ho un nuovo problema: non sarò in grado di consentire agli utenti di collegare la loro funzione (funzione anonima) agli eventi attivati nel mio modulo (ad esempio OnDuplicate () o OnPost ()).

Ogni idea, risorsa o commento è molto apprezzata. Grazie.

    
posta user123808 15.01.2015 - 18:04
fonte

2 risposte

3

Onestamente penso che tu debba rinunciare a non distribuire il codice nel tuo caso. La fonte chiusa non significa che non si può / non si può distribuire il codice, significa che non è consentito distribuirlo.

Penso che dovresti davvero valutare i tuoi obiettivi. Se vuoi impedire alla gente di guardare il tuo codice, allora usa un obfuscator, se vuoi fatturare per installazione poi usa un correttore di licenza di qualche tipo. Se non ti puoi fidare dei tuoi clienti, allora ottieni nuovi clienti.

Inoltre (e intendo questo in un modo carino), il tuo codice è "senza valore" in questo tipo di scenario, è la tua idea e implementazione che ha valore. Anche se qualcuno non riceve il tuo codice sorgente, può semplicemente copiare l'idea.

    
risposta data 22.01.2015 - 12:28
fonte
0

Che ne pensi di usare Zend Guard o ionCube PHP Encoder? O perché è un problema distribuire il codice sorgente a pagamento?

Questo è un problema non speciale per PHP. Molte aziende scrivono librerie che vendono in forma di codice sorgente.

    
risposta data 18.01.2015 - 01:07
fonte

Leggi altre domande sui tag