PHP 7 Avanzato con Programmazione Orientata agli Oggetti.
4.6 (45 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
238 students enrolled

PHP 7 Avanzato con Programmazione Orientata agli Oggetti.

Impara la Programmazione Orientata agli Oggetti in php creando un Blog in MVC con Login e gestione di ruolo.
4.6 (45 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
238 students enrolled
Created by Hidran Arias
Last updated 4/2020
Italian
Current price: $90.99 Original price: $129.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 13 hours on-demand video
  • 6 articles
  • 17 downloadable resources
  • 2 coding exercises
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Conoscere il paradigma della programmazione orientata agli oggetti
  • Creare classi
  • Creare interface
  • Estendere classi
  • Usare gli spazi di nome. namespace
  • Autoload delle classi
  • Traits
  • Gestire le eccezioni
  • Gestire gli errori
  • Log di errori
  • Gestire i cookie
  • Autenticazione
  • Registrazione
Course content
Expand all 93 lectures 12:56:42
+ Funzioni in php.
7 lectures 01:09:58

Funzioni variadiche

Preview 17:01

Funzioni anonime

Preview 10:26

Funzioni. Parametri passati per valori e


per riferimento

Funzioni. Parametri passati per valori e per riferimento
09:40

Funzioni. Scope delle variabili. Variabili


locali e globali. global

Funzioni. Scope delle variabili. Variabili locali e globali. global
13:47

Definizione tipi di argomenti e tipo di


ritorno

Definizione tipi di argomenti e tipo di ritorno
11:45

Indicare il tipo di parametro e che può essere null. Ritorno null di funzione

Indicare il tipo di parametro e che può essere null. Ritorno null di funzione
07:18

Codice sorgente della sezione

Codice sorgente della sezione
00:01
+ Gestione array in php >= 7
1 lecture 06:42

Destrutturazione assimetrica di array

Destrutturazione assimetrica di array
06:42
+ Gestione delle stream in php. Ftp, File_get_contents e CURL
3 lectures 23:21

Consumare API e gestire json con file_get_contents

Consumare API e gestire json con file_get_contents
10:03

Leggere dati json con file-get-contets. Mostrare i posts con bootstrap

Preview 05:57

Passare uno stream context ad file_get_contents

Passare uno stream context ad file_get_contents
07:21
+ Classi, proprietà e metodi
9 lectures 01:15:10

Vedremo cos'è una classe e  cosa sono le sue proprietà 

Preview 07:04
Creare una classe
1 question

Il costruttore di una classe serve a impostare delle condizioni iniziali per gli oggetti

Che verranno costruiti e verrà chiamato ogni volta che si crei un oggetto della classe

__construct

class Auto {
    public $color ='';
    public $upholstery;
    
    public function __construct($extColor = null, $intColor = null) {
        $this->color = $extColor;
        $this->upholstery = $intColor;
    }
    public function getColor()
    {
        return $this->color;  
    }
    public function setColor(string $colore)
    {
        if(strlen($colore)<3){
            throw new Exception('Invalid argument');
        }
        $this->color = $colore; 
    }
}


Classe e costruttore: __construct
04:32
Creare una classe con costrutture
1 question

Si possono creare metodi che leggono e impostano proprietà di una classe.

Di solito questi metodi ( per impostare una proprietà) e getter( per leggerla) sono pubblici:


Metodi setter e getter di una classe
10:51

Con  l'attributo extends,  si può indicare ad una classe di estendere (ereditare)  un'altra classe.

Si potranno sovrascrivere i metodi della classe parent e per poter chiamare i metodi della classe parent, bisogna precedere il nome del metodo con parent::

class Auto {

    protected $color = '';
    protected $upholstery;

    public function __construct($extColor = null, $intColor = null) {
        $this->color = $extColor;
        $this->upholstery = $intColor;
    }

    public function getColor() {
        return $this->color;
    }

    public function setColor(string $colore) {
        if (strlen($colore) < 3) {
            throw new Exception('Invalid argument');
        }
        $this->color = $colore;
    }
  public function getUpholstery() {
        return $this->upholstery;
    }

    public function setUpholstery(string $uph) {
       
        $this->upholstery = $uph;
    }
}

class Truck extends Auto {
    
    protected $weight;
    
    public function __construct($extColor = null, $intColor = null, $weight) {
        parent::__construct($extColor, $intColor);
       
        $this->weight = $weight;
      // 
    }
    public function getColor() {
        return strtoupper(parent::getColor());
    }
    public function getWeight(){
        return $this->weight;
    }
     public function setWeight($w){
        return $this->weight = $w;
    }

}
Ereditarietà e override di metodi
14:33

Una interface serve a indicare alle classi che implementeranno l'interface quali sono i metodi da implementare senza che l'interface li debba definire. E' solo un compromesso che si assume la classe di fare l'implementazione di ciascun metodo:

interface iCar {

    public function stop();

    public function start();

    public function changeGear(int $v);

    public function park();

    public function accelerate();
}

class Auto implements iCar {
    
    public $iStopped = true;
    protected  $gear = 0;
    const maxGear = 5;
    protected  $isParked = false;
    public function stop(){
          $this->iStopped = true;
      }

    public function start(){
        $this->iStopped = false;  
      }

    public function changeGear( int $v){
        if($v > self::maxGear){
            $v = self ::maxGear;
        }
        if($v <0){
            $v = 0;
        }
        
        $this->gear = $v;
        if($this->gear>0){
            $this->isParked = $this->isParked= false;
        }
      }

    public function park(){
        $this->iStopped = true;
        $this->isParked = true;
      }

    public function accelerate(){
          
      }
}
Creazione di interfacce, interface in php7.
12:21

Le classi astratte (abstract) non possono essere instanziate. Le classi con almeno un metodo abstract, devono essere abstract.

Le classi che estendono una classe abstract, devono implementare il metodo bastract:

abstract class Car {
    protected $speed = 0;
    
    abstract protected function speedUp(int $v);
    
     public function getSpeed(){
         return $this->speed;
     }
 }
 
 class myCar extends Car{
     protected $speed = 0;
     public function speedUp(int $v) {
         $this->speed += $v;
     }
 }


Preview 08:57
Approfondimento classi abstratte
01:16

Metodi e proprietà definiti che static  possono essere chiamati direttamente senza dover instanziare una classe:

abstract class Car {
    
    protected $speed = 0;
    
    public static $classVersion='1';


    abstract protected function speedUp(int $v);
    
     public final function getSpeed(){
         return $this->speed;
     }
     public static function getVersion(){
         return self::$classVersion;
     }
 }
Metodi statici e final delle classi in php7
09:10
Traits
06:26
+ PHP Magic methods. I metodi magici di php
5 lectures 26:24

 Introduzione ai magic method di php

php : Introduzione ai magic method
01:54

PHP magic method __get

PHP magic method __get
08:23

PHP magic method __callStatic

PHP magic method __callStatic
04:57

PHP magic method __call

PHP magic method __call
04:37

PHP magic method . Conclusione

PHP magic method . Conclusione
06:33
+ PHP7: Definizioni dei nomi di spazio: namespace
5 lectures 22:31
PHP7: Definizioni dei nomi di spazio: namespace. INTRO
02:17

I namespace (spazi di nome) servono a incapsulare del codice ed evitare conflitti di nomi di classi, funzioni e costanti:

La classe sotto NS\Arias non andrà in conflitto con qualunque altra classe che si chiami Test in un altro namespace:

<?php
namespace NS\Arias;

class Test 
{
    public function __construct() {
        echo '<h1> Class  '.__NAMESPACE__.'_'.__CLASS__.' created<br>';
    }
}


Preview 05:03

Vedremo come utlizzare include, include_once, require, require_once, per includere delle classi.

include -> include codice php in un altro file

include_once -> come include ma se il file è già stato incluso non lo include di nuovo

require -> come include ma se non trova il file, c'è un fatal error

require_once -> come require ma se il file è già stato incluso non lo include di nuovo

Includere codici di classe con include e require
03:47

Vediamo come includere diversi  namespace, anche se sconsigliato, in un unico file

PHP7: Diversi namespace nello stesso file
04:06

In php possiamo definire una funzione di autocaricamento che verrà chiamata qualora una classe instanziata non venga trovata da php. La funzione bisogna registrarla con la funzione 

spl_autoload_register
function autloadClass($className){
    
    $link = str_replace('\\','/', $className).'.php';
    echo  "<h1>$link</h1>";;
    if(file_exists($link)){
        require_once $link;
    }
}
spl_autoload_register('autloadClass');


PHP7: Auto caricamento delle classi con la funzione spl_autoload_register
07:18
+ Usare composer, il package manager di php
3 lectures 28:58

Installazione di composer

Installazione di composer
08:43
Includere pacchetti nei nostri progetti php con omposer
Includere pacchetti nei nostri progetti php con omposer
13:40
Includere pacchetti da github nei nostri progetti php con omposer
Includere pacchetti da github nei nostri progetti php con omposer
06:35
+ Gestione cookies con php 7. Setcookie e $_COOKIE
5 lectures 31:42

Cookies. Introduzione

Preview 01:49

Cookies. Impostare un cookie con setcookie

Cookies. Impostare un cookie con setcookie
10:29

Cookies. Leggere i cookies inviati dal browser

Cookies. Leggere i cookies inviati dal browser
04:54

Cookies. Eliminare cookies

Cookies. Eliminare cookies
08:54

Cookies. Output buffering per evitare l'errore Headers already


sent

Cookies. Output buffering per evitare l'errore Headers already sent
05:36
+ Gestioni degli errori e delle eccezioni
6 lectures 43:29

Introduzione alla gestione delle eccezioni in php 7

Preview 03:08

php 7 .Eccezioni. try, catch e finally

php 7 .Eccezioni. try, catch e finally
12:01

.Eccezioni. Custom Exception

.Eccezioni. Custom Exception
10:23

set_error_handler. Gestire errori a runtime

set_error_handler. Gestire errori a runtime
07:29

Loggare gli errori ed eccezioni con sentry

Loggare gli errori ed eccezioni con sentry
05:55

set_exception_handler: Gestire eccezioni non catturare a


runtime

set_exception_handler: Gestire eccezioni non catturare a runtime
04:33
Requirements
  • Avere php 7 installato o connessione internet per installarlo
  • Qualunque editor di testo per scrivere del codice
  • PC, MAC o LINUX
  • Voglia di imparare e aggiornarsi
Description

CORSO GIA PRESENTE NEL CORSO PHP7: LA GUIDA COMPLETA!!!

PHP dalla version 5.0 implementa in modo completo il paradigma della PROGRAMMAZIONE ORIENTATA AGLI OGGETTI, OOP. 

Siamo adesso alla version 7, php7, e possiamo dichiarare il tipo degli argomenti e del ritorno di una funzione, anche i tipi scalari come string, int, bool.

In questo corso imparerai da zero e passo a passo il paradigma della PROGRAMMAZIONE ORIENTATA AGLI OGGETTI con PHP7.  Vedremo che cosa sono le classi, le loro proprietà e metodi. Cosa sono proprietà e metodi public, protected e private. Vedremo come creare una classe abstract e come implementarla. Vedremo come estendere le classi e le interfacce in php7. Vedremo come dichiarare ed implementare diverse interface. Vedremo come usare il costruttore magico di php, __construct e come inizializzare gli oggetti.

Studieremo le proprietà e metodi statici, le constanti e i metodi final.

Vedremo come utilizzare gli spazi di nome, namespace, e come autocaricare le classi, autoload.

Come ogni mio corso, questo corso si terrà sempre aggiornato con le ultime novità di OOP di php7.

Costruiremo un BLOGGING SYSTEM da zero utilizzando MVC, e pattern come Factory, Singleton, Model

Vedremo inoltre:

  • Gestione dei cookies

  • Gestione delle eccezioni

  • Gestioni degli errori

  • Gestione di login, logout e autorizzazione

Who this course is for:
  • Questo corso è per chi già conosce php ma non la programmazione orientata agli oggetti con php
  • Chi vuole prepararsi per la certificazione ZEND CERTIFIED ENGINEER
  • Per coloro che conoscono le classi ma non i traits e i namespace
  • Per chi vuole aggiornare le sue conoscenze a php7
  • Non è per principianti anche se tutto spiegato semplicemente
  • Corso già incluso nel mio corso: php7, la guida completa