Skip to content

Instantly share code, notes, and snippets.

<?php
interface UserInterface {}
final class RegularWebUser implements UserInterface {}
final class AdminUser implements UserInterface {}
final class PowerAdminUser implements UserInterface {}
final class WipFunctionalityUser implements UserInterface {}
<?php
abstract class BaseUser {}
abstract class WebUser extends BaseUser {}
class RegularUser extends WebUser {}
class AdminUser extends RegularUser {}
class PowerAdminUser extends RegularUser {}
class WipFunctionalityUser extends RegularUser {}
<?php
declare(strict_types);
namespace ${NAMESPACE};
final class ${NAME}
{
}
<?php
class User {
/**
* @return self::STATUS_*
*/
public function getStatus(): string
{
return $this->status;
<?php
class User {
public const STATUS_NEW = 'new';
public const STATUS_ACTIVE = 'active';
public const STATUS_BLOCKED = 'blocked';
private string $status = self::STATUS_NEW;
private int $age;
<?php
function act(bool $success)
{
if ($success) {
// towering block of code
// towering block of code
// towering block of code
// towering block of code
// towering block of code
<?php
function act(bool $success)
{
if (!$success) {
// one liner
return;
}
// towering block of code
<?php
$workers = [
['id' => 1, 'name' => 'John Doe'],
['id' => 3, 'name' => 'Jane Doe'],
['id' => 4, 'name' => 'Monica Trullo'],
['id' => 5, 'name' => 'Jonathan Bank'],
];
foreach ($workers as ['id' => $workerId, 'name' => $workerName]) {
<?php
$workers = [
['id' => 1, 'name' => 'John Doe'],
['id' => 3, 'name' => 'Jane Doe'],
['id' => 4, 'name' => 'Monica Trullo'],
['id' => 5, 'name' => 'Jonathan Bank'],
];
foreach ($workers as $worker) {
<?php
/**
* @return array{total: float, items: array<array{id: int, name: string}>}
*/
function basketToViewModel(Basket $basket): array
{
// function body skipped for brevity
// output annotations especially useful if using tools like PsalmPHP