Aggiornare Jquery Alla Ultimissima Release

Se avete bisogno di usare bootstrap 3 ‘a manina’ nella vostra applicazione yii, per esempio se, come me, avete fatto da zero un tema basato su Twitter Boostrap 3, allora dovete fare alcune piccole modifiche alla configurazione.

Ho difatti scoperto che se si usa l’inizializzazione suggerita dal sito bs3 , ovvero questa





    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->

    <script src="https://code.jquery.com/jquery.js"></script>

    <!-- Include all compiled plugins (below), or include individual files as needed -->

    <script src="js/bootstrap.min.js"></script>



gli activeform generano questo errore

Allora sto spostando l’inclusione di jquery nell’header html, in questo modo




<?php Yii::app()->getClientScript()->registerCoreScript( 'jquery' ); ?>



E tutto fila liscio, sia le cose native di yii sia i componenti js di bootstrap 3.

Il problema ulteriore nasce se vogliamo aggiornare jquery all’ultima release, attualmente 1.10.2 o 2.0.3.

Io ho risolto mettendo jquery in locale in /protected/vendor/jquery, e configurando nel main.php quanto segue e tutto ma proprio tutto funziona alla grande [compreso il fatto che jquery viene pubbblicato come assets]




'clientScript' => array(

			'packages' => array(

				'jquery' => array(

					'basePath' => "application.vendor.jquery",

					'js' => array('jquery-1.10.2.min.js'),

					'coreScriptPosition' => CClientScript::POS_HEAD

				)

			)

		),



Guarda,

una cosa più drastica è aggiungere alla cartella framework la nuova cartella js,

modificando il file package.php

mi spiego meglio.

Mi serviva la nuova versione di jQueryUi, mi serve perun po’ di progetti, mentre per altri mi serve la versione attuale.

Quindi ho preferito, incece di copiare su tutti i progetti che necessitano della nuova versione la cartella jqueryUi in assets ho fatto così:

  1. sono andato della directory del framework (/home/emafer/sviluppo/yii/framework/web/js/source) e vi ho messo la mia cartellina jqueryUi

  2. ho modificato il file packages presente in "/home/emafer/sviluppo/yii/framework/web/js/" aggiungendo la nuova risorsa:




'jquery.ui.emafer'=>array(

		'js'=>array('jqueryui/js/jquery-ui-1.10.3.custom.min.js'),

		'depends'=>array('jquery'),

	),



E adesso lo richiamo così:


<?php Yii::app()->getClientScript()->registerScript( 'jquery.ui.emafer' ); ?>

Attento: Yii ha sviluppato tutti i suoi widgets con una precisa versione di jquery. Se la aggiorni, non hai più la garanzia che i widgets funzionino.

@emafer

Assolutamente no!

Una cosa da non fare mai è modificare i file dentro la cartella del framework.

Ho pubblicato questo guida apposta per dimostrare come fare le cose in una Yii-way decente …

@sensoorario

Sto sviluppando una app che diventerà enorme anche questa volta, per cui vi segnalerò appena trovo eventuali problemi con l’ultima release di jQuery.

Diciamo che la fiducia che ho nel team di jQuery è pari a quel che ho nel padre di Yii

Basta testare … =)

… eh eh … frase a doppio senso …




"Basta testare" => array (

   "affermazione" => "E' sufficiente che tu continui a fare i dovuti test",.

   "imposizione"  => "E' ora che ci dici come stanno andando i test"


)



Ad ogni modo, per ora tutto ok, in qualsiasi condizione d’uso e in convivenza con altre librerie che usano jQuery.

Ovvio, si, certo, io testo, SEMPRE, il codice… per questo dicono che sono lento a programmare, per questo l’anno scorso ho avuto solo 5 ticket !

Prova a fare un ROI e vedrai che sei molto più produttivo degli altri. Testare significa anche non perdere tempo in "boh, … ieri andava".

per qs anno ho risolto … niente aziende di informatica, sto lavorando per una azienda di telefonia, quindi sono l’unico programmatore … sempre con Yii, che meraviglia … ogni giorno me ne innamoro di più.

Cmq stiamo un poco offtopic, ma certo, sono convinto che il mio modo di lavorare non sia male.