Skip to content

Instantly share code, notes, and snippets.

View adammbalogh's full-sized avatar

Adam Balogh adammbalogh

View GitHub Profile
<?php
$projectRepository = new ProjectRepository;
$project = $projectRepository->save($project);
<?php
$project = new Project('project');
$project->getTaskCollection()->add('a');
$project->getTaskCollection()->add('b');
$project->getTaskCollection()->add('c');
foreach ($project->getTaskCollection() as $task) {
echo $task->getName();
<?php
class ProjectMysqlRepository implements ProjectRepository
{
/**
* @param Project $project
*
* @return Project
*/
public function save(Project $project)
<?php
class DbTask extends Task
{
/**
* @param int $id
* @param string $name
*/
public function __construct($id, $name)
{
<?php
class DbProject extends Project
{
/**
* @param int $id
* @param string $name
* @param Task[] $tasks
*/
public function __construct($id, $name, $tasks)
<?php
final class TaskCollection implements IteratorAggregate
{
/** @var Task[] */
private $tasks;
/**
* @param Task[] $tasks
*/
<?php
class Task
{
/** @var null|int */
protected $id;
/** @var string */
protected $name;
<?php
class Project
{
/** @var null|int */
protected $id;
/** @var string */
protected $name;
# business logic file
module DataStructure
class Array
def initialize(array)
@array = array
end
def flatten
_flatten @array
end

API Documentation with API Blueprint

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

Table of Contents

  1. Overview
  2. Goals
  3. Blueprint Template