Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Setup dell’ambiente di lavoro

In questo capitolo illustreremo le impostazioni di base del nostro applicativo per poter cominciare a lavorare al progetto di creare un e-commerce con PHP.
In questo capitolo illustreremo le impostazioni di base del nostro applicativo per poter cominciare a lavorare al progetto di creare un e-commerce con PHP.
Link copiato negli appunti

AMPPS

AMPPS, che potete scaricare qui, è un ambiente di sviluppo LAMP che vi permette di avere in un’unica soluzione Apache, PHP e MySQL.

Dopo averlo scaricato, create una vostra directory di lavoro che assocerete al dominio locale che andrete a creare in AMPPS. Per comodità chiameremo questo dominio phpecommercemvc.test.

MySQL

Il nostro database avrà tre tabelle:

  1. products: la tabella dei prodotti.
  2. orders: la tabella degli ordini.
  3. customers: la tabella dei clienti.

Di seguito riportiamo la struttura delle tabelle.

products

CREATE TABLE IF NOT EXISTS `products` (
  `id` int(11) NOT NULL,
  `title` varchar(255) NOT NULL,
  `description` text NOT NULL,
  `manufacturer` varchar(255) NOT NULL,
  `price` decimal(10,2) NOT NULL,
  `image` varchar(255) NOT NULL,
  `slug` varchar(255) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
ALTER TABLE `products`
  ADD PRIMARY KEY (`id`);

orders

CREATE TABLE IF NOT EXISTS `orders` (
  `id` varchar(255) NOT NULL DEFAULT '',
  `created` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  `cart` text,
  `customer` varchar(255) DEFAULT NULL,
  `billing` varchar(255) DEFAULT NULL,
  `shipping` varchar(255) DEFAULT NULL,
  `total` decimal(10,2) DEFAULT NULL,
  `total_taxes` decimal(10,2) DEFAULT NULL,
  `status` tinyint(1) DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `orders`
  ADD PRIMARY KEY (`id`),
  ADD KEY `id` (`id`);

customers

CREATE TABLE IF NOT EXISTS `customers` (
  `id` varchar(255) NOT NULL,
  `firstname` varchar(255) DEFAULT NULL,
  `lastname` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `customers`
  ADD PRIMARY KEY (`id`);

In pratica la tabella dei clienti è collegata alla tabella degli ordini mediante i campi customers.id e orders.customer. Il campo orders.cart conterrà la versione serializzata del carrello di ciascun ordine in modo che in futuro si potrà sempre avere accesso alle singole voci degli ordini.

Struttura dei file e delle directory

La struttura dei file e delle directory del nostro spazio di lavoro in questa fase sarà la seguente:

/core
  /classes
      /PHPEcommerce
  /lib
  /src
    /locales
    /templates
      /email
  autoload.php
  config.php
/public
  /assets
    /css
    /images
    /js
/views
.htaccess
index.php
add-to-cart.php
cancel.php
cart.php
checkout.php
payment.php
product.php
thank-you.php
manufacturers.php
manufacturer.php

I file PHP multipli in questa fase saranno poi rimossi quando passeremo all'approccio MVC lasciando il solo index.php.

Apache

In questa prima fase useremo regole di riscrittura multiple nel file .htaccess per mappare gli URL con i rispettivi file PHP.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?product/(.*?)/?$ /product.php?id=$1 [L]
RewriteRule ^/?add-to-cart/?$ /add-to-cart.php
RewriteRule ^/?cart/?$ /cart.php
RewriteRule ^/?checkout/?$ /checkout.php
RewriteRule ^/?payment/?$ /payment.php
RewriteRule ^/?thank-you/?$ /thank-you.php
RewriteRule ^/?cancel/?$ /cancel.php
RewriteRule ^/?manufacturer/(.*?)/?$ /manufacturer.php?id=$1 [L]
RewriteRule ^/?manufacturers/?$ /manufacturers.php

Da notare il modificatore ? nelle espressioni regolari usato vicino agli slash dell’URL: così facendo consentiamo la selezione sia degli URL che hanno uno slash sia di quelli che ne sono privi.

PayPal

Collegatevi alla Sandbox di PayPal e create due account, uno di tipo Business che userete per accettare i pagamenti fittizi ed uno normale che userete per effettuare tali pagamenti.

Conclusione

Il setup del nostro ambiente di lavoro è completo. Nel nostro prossimo capitolo inizieremo a ragionare in termini di classi e della loro interazione.

Ti consigliamo anche