Skip to content

Instantly share code, notes, and snippets.

View julianobailao's full-sized avatar

Juliano Bailão julianobailao

View GitHub Profile
@julianobailao
julianobailao / Customer.php
Created August 31, 2016 18:30
Customer class
<?php
class Customer
{
/**
* Customer name.
*
* @var string
*/
protected $name;
@julianobailao
julianobailao / Address.php
Created August 31, 2016 18:39
Address class
<?php
class Address
{
protected $street;
protected $number;
protected $city;
protected $state;
/**
@julianobailao
julianobailao / index.php
Created August 31, 2016 18:41
Basic collection usage
<?php
// Como vimos, para que possamos instanciar uma classe de clientes precisamos passar o
// nome do cliente como parametro, então vamos lá:
$customer = new Customer('Jack Sparrow');
// Pronto! Agora temos uma instância da nossa classe de clientes agora,
// vamos adicionar endereços a este clientes:
$customer->address()->put('main_address', new Address('Street name', '12345', 'City name', 'My state'));
@julianobailao
julianobailao / usingFind.php
Last active August 31, 2016 18:47
Using collection find method
<?php
$main_address = $customer->address()->find('main_address')->getFullAddressText();
// Street name, 12345 - City name - My state
// Quando utilizamos o método find para buscar um ítem, ele retornará o objeto presente neste índice,
// ou null caso seja um indíce não existente. A collection possui também o método findOrFail, funciona de
// forma semelhante ao find, porém caso tente buscar um índice não existente, retornará uma exceção do tipo
// CollectionItemNotFoundException
@julianobailao
julianobailao / addAddres.php
Created August 31, 2016 18:49
Add adress to collection
<?php
$customer->address()->put('secondary_address', new Address('Highway name', 'km 12345', 'City name', 'My state'));
$customer->address()->put('business_address', new Address('Business Street name', '54321', 'City name', 'My state'));
@julianobailao
julianobailao / removeCollectionItem.php
Created August 31, 2016 18:49
Removing a collection item
<?php
$customer->address()->remove('business_address');
@julianobailao
julianobailao / countCollection.php
Last active August 31, 2016 18:55
Count collection items
<?php
$numItems = $customer->address()->count();
// 3
<?php
$addressess = $customer->address()->all();
/**
* [
* 'main_address' => Address::object...,
* 'secondary_address' => Address::object...,
* 'business_address' => Address::object...,
* ]
*/
@julianobailao
julianobailao / hasCollection.php
Created August 31, 2016 18:59
Collection has method
<?php
$customer->address()->remove('main_address');
// true
@julianobailao
julianobailao / eachMapCollection.php
Created August 31, 2016 19:03
Each / Map collection method
<?php
// Each
$customer->address()->each(function ($address, $key) {
// do something
});
// Map
$customer->address()->map(function ($address) {
// return something