Diferència entre revisions de la pàgina «Programació web entorn servidor»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
 
(Hi ha 37 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
 +
<nowiki>#FpInfor #DawMp07
 +
#DawMp07Uf01 #DawMp07Uf02 #DawMp07Uf03 #DawMp07Uf04
 +
</nowiki>
 +
 +
 
En aquesta assignatura treballarem bàsicament amb PHP, que actualment és el llenguatge més estès per a la programació web.
 
En aquesta assignatura treballarem bàsicament amb PHP, que actualment és el llenguatge més estès per a la programació web.
  
 
Recursos:
 
Recursos:
* Quadern d'exercicis del Daniel Herrera (molt agraït):<pre>https://uf.ctrl-alt-d.net/social/intro/</pre>
+
* Al cacauet.org disposeu del [[Curs de PHP]]
* Al mateix cacauet.org diposeu també disposeu del [[Curs de PHP]] amb recursos varis.  
+
* Al repositori Github del que va ser el [https://github.com/ctrl-alt-d/FpUf/tree/main/DAW/DAW-MP07 quadern d'exercicis del Daniel Herrera].
  
 
<br>
 
<br>
  
 
== UF1 Programació web entorn servidor ==
 
== UF1 Programació web entorn servidor ==
 +
Per configurar adequadament el Apache, reviseu [[Php.ini]]
  
[https://uf.ctrl-alt-d.net/material/mostra/288/abc-index-dexercicis Índex d'exercicis]
+
[https://uf.ctrl-alt-d.net/material/mostra/288/abc-index-dexercicis Índex d'exercicis]
  
 
Temes a tractar amb PHP:
 
Temes a tractar amb PHP:
Línia 22: Línia 28:
 
* [[PHP Forms|Formularis]]
 
* [[PHP Forms|Formularis]]
 
* GET vs POST
 
* GET vs POST
* Cookies i Sessions
+
* Cookies i [[PHP sessions]]
 +
 
 +
Exemples:
 +
* [[Batalla naval en PHP]] (versions amb i sense sessions)
  
 
Exercicis entregables:
 
Exercicis entregables:
Línia 28: Línia 37:
 
# [https://uf.ctrl-alt-d.net/material/mostra/40/php-els-ingredients-de-la-pizza La pizza]
 
# [https://uf.ctrl-alt-d.net/material/mostra/40/php-els-ingredients-de-la-pizza La pizza]
 
# [https://uf.ctrl-alt-d.net/material/mostra/299/php-sudoku-amb-formularis-i-sessions Sudoku]
 
# [https://uf.ctrl-alt-d.net/material/mostra/299/php-sudoku-amb-formularis-i-sessions Sudoku]
 +
# [https://uf.ctrl-alt-d.net/material/mostra/307/moviment-duna-peca-descacs-en-php Moure una peça d'escacs].
  
 
<br>
 
<br>
  
 
== UF3 Accés a dades ==
 
== UF3 Accés a dades ==
...
+
En aquesta UF estudiarem diversos mètodes d'accés a bases de dades, imprescindibles per poder realitzar pàgines web dinàmiques.
 +
 
 +
Índex UF3 al quadern d'exercicis:
 +
https://github.com/ctrl-alt-d/FpUf/tree/main/DAW/DAW-MP07/DAW-MP07-UF3/tecniques-dacces-a-dades-metacontingut
 +
 
 +
Començarem, però, per alguns exemples clàssics: [[Imatge:Filtre-continent.png|thumb|Llistat de països filtrats per continents.]]
 +
# [[PHP MySQL select]]: accedirem a una base de dades de la manera més clàssica i menys eficient, amb instruccions específiques per a un SGBD concret (MySQL). Òbviament, això no és gaire òptim però està bé conèixer els mecanismes bàsics.
 +
# '''PDO''' o PHP Data Objects
 +
#* Llegeix-te aquest [https://github.com/ctrl-alt-d/FpUf/tree/main/DAW/DAW-MP07/DAW-MP07-UF3/php-acces-a-dades-amb-pdo exercici d'accés a dades amb PDO].
 +
#*:Para atenció en com es fa el ''foreach'' enlloc del ''for'' habitual.
 +
#* Exercici: Utilitza la base de dades WORLD vista al primer tutorial.
 +
#** Fes un formulari amb un desplegable dels CONTINENTS.
 +
#** Llista els països amb un filtre per continent.
 +
#** Mostra la població de cada país i un total de tot el continent.
 +
 
 +
<br>
 +
 
 +
El projecte d'aquest any: [https://wiket.esteveterradas.cat/index.php/Projecte_Vota_-_Especificacions Projecte VOTA!]
 +
 
 +
[[Imatge:Vota4.jpg|450px]]
  
 
<br>
 
<br>
  
 
== UF2 Programació de webs dinàmiques ==
 
== UF2 Programació de webs dinàmiques ==
...
+
Prèviament hem après a programar ja en PHP i amb bases de dades, però hem aprés de forma un tant anàrquica, i hem vist en el transcurs dels projectes que tendim a fer "codi espagueti" i acabem repetint moltes parts del mateix de forma recorrent. En aquesta UF aprendrem a programar de forma més ordenada i aprendrem una sèrie d'eines imprescindibles per desenvolupar de forma segura i metòdica: els '''''frameworks'''''. En particular utilitzarem [[Laravel]] que és el ''framework'' per a PHP més famós actualment (a principis de 2018).
 +
 
 +
Un framework es sol definir com:
 +
- un conjunt d'eines i llibreries
 +
- un conjunt de bones pràctiques per treballar amb aquestes eines
 +
 
 +
Introducció i referències:
 +
* [[Desenvolupament d'aplicacions web amb frameworks]] una mica de teoria.
 +
* [[Laravel]]: instal·lació i primeres passes
 +
* Apunts del Sergi Coll: https://seicoll.github.io/DAW-M07-UF2-Apunts/
 +
* Tutorial de referència: https://ajgallego.gitbooks.io/laravel-5/content/index.html
 +
* [[Laravel#Quickstart_per_a_fer_un_CRUD|Xuleta de referència ràpida per a projectes amb Laravel]]
 +
 
 +
Una de les característiques més incòmodes dels frameworks és que tenen una certa "corba d'aprenentatge", és a dir, que al principi costa una mica ficar-se. Un cop superat el segon projecte, tot resulta més fàcil i comprensible, i ajuda a programar amb ordre i de forma estandarditzada.
 +
 
 +
Farem servir el tutorial de AJ Gallego per a endinsar-nos en el món de Laravel. Com que té la seva complicació i costa retenir cada pas que fem, dividirem el tutorial en diverses parts i repetirem el procediment realitzat en un altre projecte. Per senzillesa repetirem el projecte de la UF anterior però implementat ara amb el ''framework'', cosa que ens permetrà comparar el codi resultant dels dos projectes.
 +
 
 +
El tutorial és aquest:
 +
https://ajgallego.gitbooks.io/laravel-5/content/index.html
 +
Com que algunes parts han quedat obsoletes, utilitza la [[Laravel|documentació de cacauet.org sobre Laravel]] per solventar els problemes.
 +
 
 +
I les seves diverses parts son:
 +
# Instal·lació i eines Composer: [[Laravel#Instal.C2.B7lació_i_setup]]
 +
# Vistes i Controladors
 +
# Model i base de dades
 +
# Autenticació i autorització (middleware)
 +
 
 +
Realitzarem totes aquestes passes primer amb el propi tutorial, i amb el projecte de la UF anterior (Vota2) de forma individual, per consolidar la comprensió de la mecànica del ''framework''.
 +
 
 +
Al final de la UF realitzarem un projecte en grups. Aquest any serà el [https://wiket.esteveterradas.cat/index.php/Projecte_Xat_-_Especificacions projecte Xat per a un Ajuntament].
 +
 
 +
Els lliuraments finalment seran:
 +
* Repositori del Github del tutorial (individual)
 +
* Repositori del Github del projecte Vota2 (individual)
 +
* Repositori del Github del projecte Xat (en grup)
  
 
<br>
 
<br>
  
 
== UF4 Serveis web ==
 
== UF4 Serveis web ==
...
+
Els [https://ca.wikipedia.org/wiki/Servei_web serveis web], simplificant, és una manera de realitzar '''crides a funcions remotes''' mitjançant el protocol HTTP. És la forma més còmoda per al programador web d'anar a buscar dades a un servidor, ja sigui des d'un altre servidor o des d'un client.
 +
 
 +
Al tractar-se, com hem dit, de "crides a funcions remotes", solem anomenar-los [https://ca.wikipedia.org/wiki/Interf%C3%ADcie_de_programaci%C3%B3_d'aplicacions API : Application Programming Interface].
 +
 
 +
Articles de referència:
 +
* [[Serveis Web]]
 +
* [[Serveis web amb Laravel]]
 +
* Pràctica entregable: [[Serveis Web amb Opendata]]
 +
* Material addicional en Python: [[Web Services: exemple Escacs]]
 +
* [https://ajgallego.gitbooks.io/laravel-5/content/capitulo_5.html REST i CURL del tutorial de Laravel de AJ Gallego]
  
 
<br>
 
<br>

Revisió de 09:10, 9 set 2022

#FpInfor #DawMp07 #DawMp07Uf01 #DawMp07Uf02 #DawMp07Uf03 #DawMp07Uf04


En aquesta assignatura treballarem bàsicament amb PHP, que actualment és el llenguatge més estès per a la programació web.

Recursos:


UF1 Programació web entorn servidor[modifica]

Per configurar adequadament el Apache, reviseu Php.ini

Índex d'exercicis

Temes a tractar amb PHP:

Exemples:

Exercicis entregables:

  1. Calendari
  2. La pizza
  3. Sudoku
  4. Moure una peça d'escacs.


UF3 Accés a dades[modifica]

En aquesta UF estudiarem diversos mètodes d'accés a bases de dades, imprescindibles per poder realitzar pàgines web dinàmiques.

Índex UF3 al quadern d'exercicis:

https://github.com/ctrl-alt-d/FpUf/tree/main/DAW/DAW-MP07/DAW-MP07-UF3/tecniques-dacces-a-dades-metacontingut

Començarem, però, per alguns exemples clàssics:

Llistat de països filtrats per continents.
  1. PHP MySQL select: accedirem a una base de dades de la manera més clàssica i menys eficient, amb instruccions específiques per a un SGBD concret (MySQL). Òbviament, això no és gaire òptim però està bé conèixer els mecanismes bàsics.
  2. PDO o PHP Data Objects
    • Llegeix-te aquest exercici d'accés a dades amb PDO.
      Para atenció en com es fa el foreach enlloc del for habitual.
    • Exercici: Utilitza la base de dades WORLD vista al primer tutorial.
      • Fes un formulari amb un desplegable dels CONTINENTS.
      • Llista els països amb un filtre per continent.
      • Mostra la població de cada país i un total de tot el continent.


El projecte d'aquest any: Projecte VOTA!

Vota4.jpg


UF2 Programació de webs dinàmiques[modifica]

Prèviament hem après a programar ja en PHP i amb bases de dades, però hem aprés de forma un tant anàrquica, i hem vist en el transcurs dels projectes que tendim a fer "codi espagueti" i acabem repetint moltes parts del mateix de forma recorrent. En aquesta UF aprendrem a programar de forma més ordenada i aprendrem una sèrie d'eines imprescindibles per desenvolupar de forma segura i metòdica: els frameworks. En particular utilitzarem Laravel que és el framework per a PHP més famós actualment (a principis de 2018).

Un framework es sol definir com:
- un conjunt d'eines i llibreries
- un conjunt de bones pràctiques per treballar amb aquestes eines

Introducció i referències:

Una de les característiques més incòmodes dels frameworks és que tenen una certa "corba d'aprenentatge", és a dir, que al principi costa una mica ficar-se. Un cop superat el segon projecte, tot resulta més fàcil i comprensible, i ajuda a programar amb ordre i de forma estandarditzada.

Farem servir el tutorial de AJ Gallego per a endinsar-nos en el món de Laravel. Com que té la seva complicació i costa retenir cada pas que fem, dividirem el tutorial en diverses parts i repetirem el procediment realitzat en un altre projecte. Per senzillesa repetirem el projecte de la UF anterior però implementat ara amb el framework, cosa que ens permetrà comparar el codi resultant dels dos projectes.

El tutorial és aquest:

https://ajgallego.gitbooks.io/laravel-5/content/index.html

Com que algunes parts han quedat obsoletes, utilitza la documentació de cacauet.org sobre Laravel per solventar els problemes.

I les seves diverses parts son:

  1. Instal·lació i eines Composer: Laravel#Instal.C2.B7lació_i_setup
  2. Vistes i Controladors
  3. Model i base de dades
  4. Autenticació i autorització (middleware)

Realitzarem totes aquestes passes primer amb el propi tutorial, i amb el projecte de la UF anterior (Vota2) de forma individual, per consolidar la comprensió de la mecànica del framework.

Al final de la UF realitzarem un projecte en grups. Aquest any serà el projecte Xat per a un Ajuntament.

Els lliuraments finalment seran:

  • Repositori del Github del tutorial (individual)
  • Repositori del Github del projecte Vota2 (individual)
  • Repositori del Github del projecte Xat (en grup)


UF4 Serveis web[modifica]

Els serveis web, simplificant, és una manera de realitzar crides a funcions remotes mitjançant el protocol HTTP. És la forma més còmoda per al programador web d'anar a buscar dades a un servidor, ja sigui des d'un altre servidor o des d'un client.

Al tractar-se, com hem dit, de "crides a funcions remotes", solem anomenar-los API : Application Programming Interface.

Articles de referència: