{"elements":[{"id":7013,"title":"Dresser CLI","body":"<section class=\"da-section\">\n  <div class=\"container\">\n    <h2>Dresser - Tool di Scaffolding<\/h2>\n    <p class=\"lead\">Dresser &egrave; lo strumento a riga di comando di DressAPI che semplifica la creazione e la gestione dei progetti. Attraverso un&rsquo;interfaccia CLI e una GUI web opzionale, permette di inizializzare nuovi progetti, generare classi dal database, validare le convenzioni di nomenclatura e configurare il server web in pochi comandi.<\/p>\n\n    <h3 class=\"mt-4\">Comandi CLI<\/h3>\n    <div class=\"table-responsive\">\n      <table class=\"table table-striped\">\n        <thead class=\"table-dark\">\n          <tr><th>Comando<\/th><th>Descrizione<\/th><\/tr>\n        <\/thead>\n        <tbody>\n          <tr><td><code>dresser init<\/code><\/td><td>Inizializza nuovo progetto (clona repo, installa dipendenze)<\/td><\/tr>\n          <tr><td><code>dresser generate<\/code><\/td><td>Genera Controller\/Model PHP dalle tabelle DB<\/td><\/tr>\n          <tr><td><code>dresser db create<\/code><\/td><td>Crea database<\/td><\/tr>\n          <tr><td><code>dresser db validate<\/code><\/td><td>Valida convenzioni di nomenclatura<\/td><\/tr>\n          <tr><td><code>dresser db suggest<\/code><\/td><td>Suggerisce miglioramenti<\/td><\/tr>\n          <tr><td><code>dresser webserver apache<\/code><\/td><td>Genera configurazione Apache<\/td><\/tr>\n          <tr><td><code>dresser webserver nginx<\/code><\/td><td>Genera configurazione Nginx<\/td><\/tr>\n          <tr><td><code>dresser serve<\/code><\/td><td>Avvia interfaccia web GUI (porta 8888)<\/td><\/tr>\n        <\/tbody>\n      <\/table>\n    <\/div>\n\n    <h3 class=\"mt-5\">Tipi di progetto<\/h3>\n    <div class=\"table-responsive\">\n      <table class=\"table table-striped\">\n        <thead class=\"table-dark\">\n          <tr><th>Tipo<\/th><th>Componenti<\/th><\/tr>\n        <\/thead>\n        <tbody>\n          <tr><td><code>cms<\/code><\/td><td>core + CMS server-side<\/td><\/tr>\n          <tr><td><code>api<\/code><\/td><td>core + API REST<\/td><\/tr>\n          <tr><td><code>api-vue<\/code><\/td><td>core + API + Vue.js 3<\/td><\/tr>\n          <tr><td><code>api-react<\/code><\/td><td>core + API + React 18<\/td><\/tr>\n          <tr><td><code>api-angular<\/code><\/td><td>core + API + Angular 18<\/td><\/tr>\n          <tr><td><code>api-ajax<\/code><\/td><td>core + API + vanilla JS<\/td><\/tr>\n        <\/tbody>\n      <\/table>\n    <\/div>\n\n    <h3 class=\"mt-5\">DB Designer (GUI Web)<\/h3>\n    <p>Accessibile via <code>dresser serve<\/code>, offre:<\/p>\n    <ul>\n      <li>Canvas drag-and-drop per creare tabelle<\/li>\n      <li>Editor colonne con tipi, vincoli e default<\/li>\n      <li>Visualizzazione relazioni FK<\/li>\n      <li>Anteprima SQL generato<\/li>\n      <li>Import da database esistente<\/li>\n      <li>Generazione codice con anteprima<\/li>\n    <\/ul>\n  <\/div>\n<\/section>\n\n<section class=\"da-section text-center\">\n  <a href=\"\/tutorials\" class=\"btn btn-outline-primary\">&larr; Torna ai Tutorial<\/a>\n<\/section>","description":"Tool di scaffolding e DB Designer","meta_keywords":"","visible":"yes","status":"public","creation_date":"0000-00-00","id__user":1,"priority":0,"groupname":"TUTORIAL"}],"module":"pages","permissions":{"can_read":true},"main_item_title":"title","related_tables":[{"name":"Newsonpage","module":"newsonpage","FK":"id_cmspage","permissions":[]}],"page_info":{"table":"","key":"id","url":"\/pages","url_list":"\/pages","filters":{"id":["=","7013"]},"pagination":{"total_items":23,"page":1,"total_pages":2,"step":1,"items_per_page":20,"url_prev":"\/pages","url_next":"\/pages\/p\/2","url_tmpl":"\/pages\/p\/[[p]]","url_tmpl_with_order":"\/pages\/p\/[[p]]\/ob\/[[ob]]"},"order":{"field":"id","type":"DESC","url_tmpl":"\/pages\/p\/[[p]]"},"module":{"title":"Pages","description":"List of pages","name":"pages"},"current":{"title":"Pages","description":"List of pages","name":"pages","url":"\/tutorials\/dresser"}},"components":{"alert":{"alert1":[{"type":"warning","message":"OK COMPONENT!"},{"type":"danger","message":"ERROR COMPONENT!"}]}},"messages":[]}