Gestire librerie di frontend in php

16
gestire le librerie di frontend in PHP! Massimiliano Arione

description

la mia presentazione all'incontro di novembre 2013 del PUG Roma, su come gestire le librerie di frontend (tipicamente css e javascript) in un progetto PHP, con alcune considerazioni finali specifiche per Symfony2

Transcript of Gestire librerie di frontend in php

Page 1: Gestire librerie di frontend in php

gestire le librerie di frontend

in PHP!

Massimiliano Arione

Page 2: Gestire librerie di frontend in php

voglio gestire le mie librerie di frontend

problema

Page 3: Gestire librerie di frontend in php

voglio gestire le mie librerie di frontend

ovvero...

problema

Page 4: Gestire librerie di frontend in php

voglio gestire le mie librerie di frontend

ovvero…

file javascriptfogli di stile

problema

Page 5: Gestire librerie di frontend in php

librerie esterne!

● bootstrap ● foundation● modernizr● jquery● jquery-ui● font awesome● ecc ecc….

qui parliamo di...

Page 6: Gestire librerie di frontend in php

(brutta! NON FATELO!!)

… scaricare le librerie e includere nel repository del progetto

la prima soluzione...

Page 7: Gestire librerie di frontend in php

usare composerhttps://github.com/components{

"require": {

"components/modernizr": "2.*",

"components/jqueryui": "1.10.*",

"components/bootstrap": "2.*"

}

}

una prima soluzione decente...

Page 8: Gestire librerie di frontend in php

i file sono copiati in una cartella pubblica{

"config": {

"bin-dir": "bin",

"component-dir": "web/components"

},

}

smell

Page 9: Gestire librerie di frontend in php

bower!

sudo npm install -g bower

bower helpbower init

seconda soluzione

Page 10: Gestire librerie di frontend in php

bower.json{

"name": "PUG Roma",

"authors": [

"Massimiliano Arione”

]

"dependencies": {

"jquery": "2.*"

}

}

file di configurazione

Page 11: Gestire librerie di frontend in php

bower install

installazione

Page 12: Gestire librerie di frontend in php

.bowerrc

{

"directory": "app/Resources/bower"

}

da aggiungere a .gitignore

con Symfony2

Page 13: Gestire librerie di frontend in php

before 'symfony:cache:warmup', 'bower:install'

namespace :bower do desc '[internal] Run the bower install' task :install do invoke_command "cd #{latest_release} && bower:install" endend

capifony

Page 14: Gestire librerie di frontend in php

assetic:

assets:

jquery_js:

inputs:

- "%kernel.root_dir%/../app/Resources/bower/jquery/jquery.js"

assetic

Page 15: Gestire librerie di frontend in php

{% javascripts

'@jquery_js'

'@AcmeBundle/Resources/public/js/my.js'

%}

layout