Professor eu estou perdido na primeira parte da criação da classe Student, vc explicou, mas me parece que tinha alguma coisa, uma explicação, ou já começa na inserção de alunos?
Obs. já tinha assistido as aulas de instalação, conexão etc...
minha estrutura de arquivos .php, está assim: c:/xamp/htdocs/curso
- vendor
- banco.sqlite
- busca-cursos.php
- composer.json
- composer.lock
- conexao1.php
- inserir-aluno.php
- Student.php
Fatal error: Uncaught Error: Class "Alura\Pdo\Domain\Model\Student" not found in C:\xampp\htdocs\curso\inserir-aluno.php:11 Stack trace: #0 {main} thrown in C:\xampp\htdocs\curso\inserir-aluno.php on line 11
Student.php
<?php
namespace Alura\Pdo\Domain\Model;
class Student
{
private ?int $id;
private string $name;
private \DateTimeInterface $birth_date;
public function __construct(?int $id, string $name, \DateTimeInterface $birth_date)
{
$this->id = $id;
$this->name = $name;
$this->birth_date = $birth_date;
}
public function id(): ?int
{
return $this->id();
}
public function name(): string
{
return $this->name;
}
public function birth_date(): \DateTimeInterface
{
return $this->birth_date;
}
public function age(): int
{
return $this->birth_date
->diff(new \DateTimeImmutable())
->y;
}
}
inserir-aluno.php
<?php
use Alura\Pdo\Domain\Model\Student;
require_once 'vendor/autoload.php';
$caminhoBanco = __DIR__ . '/banco.sqlite';
$pdo = new PDO('sqlite:' . $caminhoBanco);
$student = new Student(null, 'julia', new \DateTimeImmutable('2010-07-05'));
$sqlInsert = "INSERT INTO students (name, birth_date) VALUES ('{$student->name()}', '{$student->birth_date()->format('Y-m-d')}');";
echo $sqlInsert;
composer.json
{
"name": "curso/treinamento",
"description": "projeto treinamento PDO",
"type": "library",
"authors": [
{
"name": "H3rl3s",
"email": "herlesp@gmail.com"
}
],
"require": {
"guzzlehttp/guzzle": "^7.2",
"symfony/dom-crawler": "^4.2",
"symfony/css-selector": "^5.2"
}
}
conexao1.php
<?php
$caminhoBanco = __DIR__ . 'banco.sqlite';
$pdo = new PDO('sqlite:' . $caminhoBanco);
echo "suusususu:)";
$pdo->exec('CREATE TABLE students (id INTEGER PRIMARY KEY , name TEXT, birth_date TEXT );');