PHP Snippets
Modern PHP programming patterns and features
Array Functions
phpCommon PHP array operations
<?php
$fruits = ['apple', 'banana', 'orange', 'grape'];
// Array mapping
$upperFruits = array_map(function($fruit) {
return strtoupper($fruit);
}, $fruits);
// Array filtering
$longFruits = array_filter($fruits, function($fruit) {
return strlen($fruit) > 5;
});
// Array reduction
$fruitString = array_reduce($fruits, function($carry, $fruit) {
return $carry . ', ' . $fruit;
}, 'Fruits: ');
// Array manipulation
$slicedFruits = array_slice($fruits, 1, 2);
$mergedArrays = array_merge($fruits, ['mango', 'kiwi']);
$uniqueFruits = array_unique($mergedArrays);Classes and Objects
phpObject-oriented programming in PHP
<?php
class User {
private $name;
private $email;
public function __construct(string $name, string $email) {
$this->name = $name;
$this->email = $email;
}
public function getName(): string {
return $this->name;
}
public function setName(string $name): void {
$this->name = $name;
}
public function getEmail(): string {
return $this->email;
}
public static function fromArray(array $data): self {
return new self($data['name'], $data['email']);
}
}Database Operations
phpPDO database interactions
<?php
class Database {
private $pdo;
public function __construct() {
$this->pdo = new PDO(
'mysql:host=localhost;dbname=myapp',
'username',
'password',
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
);
}
public function getUser(int $id): ?array {
$stmt = $this->pdo->prepare(
'SELECT * FROM users WHERE id = :id'
);
$stmt->execute(['id' => $id]);
return $stmt->fetch(PDO::FETCH_ASSOC) ?: null;
}
public function createUser(array $data): int {
$stmt = $this->pdo->prepare(
'INSERT INTO users (name, email) VALUES (:name, :email)'
);
$stmt->execute([
'name' => $data['name'],
'email' => $data['email']
]);
return $this->pdo->lastInsertId();
}
}Error Handling
phpException handling and custom errors
<?php
class ValidationException extends Exception {}
class UserService {
public function createUser(array $data): User {
try {
$this->validateData($data);
$user = User::fromArray($data);
$this->saveUser($user);
return $user;
} catch (ValidationException $e) {
// Log validation error
error_log('Validation failed: ' . $e->getMessage());
throw $e;
} catch (Exception $e) {
// Log general error
error_log('Error creating user: ' . $e->getMessage());
throw new RuntimeException(
'Could not create user',
0,
$e
);
}
}
private function validateData(array $data): void {
if (empty($data['email'])) {
throw new ValidationException('Email is required');
}
if (!filter_var($data['email'], FILTER_VALIDATE_EMAIL)) {
throw new ValidationException('Invalid email format');
}
}
}