{"id":353,"date":"2014-07-18T22:35:21","date_gmt":"2014-07-18T20:35:21","guid":{"rendered":"http:\/\/www.valeriofinazzo.it\/wordpress\/?p=353"},"modified":"2014-07-19T15:11:29","modified_gmt":"2014-07-19T13:11:29","slug":"vufind-tutorial-7-creazione-di-un-controller","status":"publish","type":"post","link":"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/07\/vufind-tutorial-7-creazione-di-un-controller\/","title":{"rendered":"VUFIND &#8211; Tutorial 7 &#8211; Creazione di un controller"},"content":{"rendered":"<p style=\"text-align: justify;\">Nell&#8217;articolo di oggi illustro la procedura per\u00a0aggiungere un controller al modulo VUFIND. \u00a0Per controller si intende la classe responsabile di interpretare la richiesta e caricare la pagina di presentazione dati (VIEW).<\/p>\n<p style=\"text-align: justify;\">Occorre creare la classe all\u2019interno del package di VUFIND<\/p>\n<pre class=\"lang:default decode:true\">module\/VuFind\/src\/VuFind\/controller<\/pre>\n<p style=\"text-align: justify;\">I controller sono classi php che estendono la classe \u201cAbstractBase\u201d, i cui metodi con suffisso Action individuano le action esposta dal controller.<\/p>\n<p style=\"text-align: justify;\">Consideriamo la classe TestController.php contenente il seguente codice:<\/p>\n<pre class=\"lang:default decode:true \">&lt;?php\r\nnamespace VuFind\\Controller;\r\nclass TestController extends AbstractBase\r\n{\r\n\u00a0\u00a0\u00a0 public function testAction()\r\n\u00a0\u00a0\u00a0 {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $view =\u00a0 $this-&gt;createViewModel();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return $view;\r\n\u00a0\u00a0\u00a0 }\r\n}\r\n<\/pre>\n<p style=\"text-align: justify;\">Tale controller va configurato nel file di configurazione centrale del modulo VUFIND disponibile al path<\/p>\n<pre class=\"lang:default decode:true \">module\/VuFind\/config\/ module.config.php.<\/pre>\n<p style=\"text-align: justify;\">Tale configurazione prevede la definizione di un alias nela sezione invokables del file<\/p>\n<pre class=\"lang:default decode:true\">'invokables' =&gt; array(\r\n'test' =&gt; 'VuFind\\Controller\\TestController',\r\n<\/pre>\n<p style=\"text-align: justify;\">e la definizione della \u201c<strong><em>Route<\/em><\/strong>\u201d, che individua la action da invocare agendo sulla sezione delle rotte statiche<\/p>\n<pre class=\"lang:default decode:true\">$staticRoutes = array(\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 'test\/test',\r\n<\/pre>\n<p style=\"text-align: justify;\">Il metodo testAction prevede la presenza di una view che si chiami come la action, nel nostro caso test.phtml, presente all&#8217;interno del nostro tema all&#8217;interno di una directory pari al nome del controller<\/p>\n<p style=\"text-align: justify;\">\u201cthemes\/&lt;tema&gt;\/templates\/test\/test<strong><em>.phtml<\/em><\/strong>\u201d<\/p>\n<p style=\"text-align: justify;\">Il cui contenuto \u00e8<\/p>\n<pre class=\"lang:default decode:true\">&lt;?\r\n\u00a0\u00a0\u00a0 echo 'TEST';\r\n?&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">E\u2019 possibile verificare la correttezza di quanto fatto invocando l\u2019url<\/p>\n<p style=\"text-align: justify;\"><em>http:\/\/localhost\/vufind\/test\/test<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nell&#8217;articolo di oggi illustro la procedura per\u00a0aggiungere un controller al modulo VUFIND. \u00a0Per controller si intende la classe responsabile di interpretare la richiesta e caricare la pagina di presentazione dati (VIEW). Occorre creare la classe all\u2019interno del package di VUFIND module\/VuFind\/src\/VuFind\/controller I controller sono classi php che estendono la classe \u201cAbstractBase\u201d, i cui metodi con &hellip; <a href=\"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/07\/vufind-tutorial-7-creazione-di-un-controller\/\" class=\"more-link\">Continua la lettura di <span class=\"screen-reader-text\">VUFIND &#8211; Tutorial 7 &#8211; Creazione di un controller<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[60],"tags":[67,61],"_links":{"self":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/353"}],"collection":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/comments?post=353"}],"version-history":[{"count":5,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/353\/revisions"}],"predecessor-version":[{"id":358,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/353\/revisions\/358"}],"wp:attachment":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/media?parent=353"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/categories?post=353"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/tags?post=353"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}