1. Go to this page and download the library: Download openclassrooms/use-case library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
openclassrooms / use-case example snippets
penClassrooms\UseCase\Application\Services\Proxy\UseCases\UseCaseProxy;
//do things
use OpenClassrooms\UseCase\BusinessRules\Requestors\UseCase;
use OpenClassrooms\UseCase\BusinessRules\Requestors\UseCaseRequest;
use OpenClassrooms\UseCase\BusinessRules\Responders\UseCaseResponse;
class AUseCase implements UseCase
{
/**
* @return UseCaseResponse
*/
public function execute(UseCaseRequest $useCaseRequest)
{
// do things
return $useCaseResponse;
}
}
use OpenClassrooms\UseCase\BusinessRules\Requestors\UseCase;
use OpenClassrooms\UseCase\BusinessRules\Requestors\UseCaseRequest;
use OpenClassrooms\UseCase\BusinessRules\Responders\UseCaseResponse;
use OpenClassrooms\UseCase\Application\Annotations\Security;
class AUseCase implements UseCase
{
/**
* @Security (roles = "ROLE_1")
*
* @return UseCaseResponse
*/
public function execute(UseCaseRequest $useCaseRequest)
{
// do things
return $useCaseResponse;
}
}
/**
* @Security (roles = "ROLE_1, ROLE_2")
* Check the array of roles
*
* @Security (roles = "ROLE_1", checkRequest = true)
* Check access for the object $useCaseRequest
*
* @Security (roles = "ROLE_1", checkField = "fieldName")
* Check access for the field "fieldName" of the object $useCaseRequest
*/
use OpenClassrooms\UseCase\BusinessRules\Requestors\UseCase;
use OpenClassrooms\UseCase\BusinessRules\Requestors\UseCaseRequest;
use OpenClassrooms\UseCase\BusinessRules\Responders\UseCaseResponse;
use OpenClassrooms\UseCase\Application\Annotations\Cache;
class AUseCase implements UseCase
{
/**
* @Cache
*
* @return UseCaseResponse
*/
public function execute(UseCaseRequest $useCaseRequest)
{
// do things
return $useCaseResponse;
}
}
/**
* @Cache (lifetime=1000)
* Add a TTL of 1000 seconds
*
* @Cache (namespacePrefix="namespace_prefix")
* Add a namespace to the id with a namespace id equals to "namespace_prefix"
*
* @Cache (namespacePrefix="namespace prefix", namespaceAttribute="fieldName")
* Add a namespace to the id with a namespace id equals to "namespace_prefix" . "$useCaseRequest->fieldName"
*/
use OpenClassrooms\UseCase\BusinessRules\Requestors\UseCase;
use OpenClassrooms\UseCase\BusinessRules\Requestors\UseCaseRequest;
use OpenClassrooms\UseCase\BusinessRules\Responders\UseCaseResponse;
use OpenClassrooms\UseCase\Application\Annotations\Transaction;
class AUseCase implements UseCase
{
/**
* @Transaction
*
* @return UseCaseResponse
*/
public function execute(UseCaseRequest $useCaseRequest)
{
// do things
return $useCaseResponse;
}
}
use OpenClassrooms\UseCase\BusinessRules\Requestors\UseCase;
use OpenClassrooms\UseCase\BusinessRules\Requestors\UseCaseRequest;
use OpenClassrooms\UseCase\BusinessRules\Responders\UseCaseResponse;
use OpenClassrooms\UseCase\Application\Annotations\EventSender;
class AUseCase implements UseCase
{
/**
* @Event
*
* @return UseCaseResponse
*/
public function execute(UseCaseRequest $useCaseRequest)
{
// do things
return $useCaseResponse;
}
}
/**
* @Event(name="event_name")
* Send an event with event name equals to *prefix*.event_name
* (note: the name is always converted to underscore)
*
* @Event(methods="pre")
* Send an event before the call of UseCase->execute()
*
* @Event(methods="pre, post, onException")
* Send an event before the call of UseCase->execute(), after the call of UseCase->execute() or on exception
*
* @Event(name="first_event")
* @Event(name="second_event")
* Send two events
*/
use OpenClassrooms\UseCase\BusinessRules\Requestors\UseCase;
use OpenClassrooms\UseCase\BusinessRules\Requestors\UseCaseRequest;
use OpenClassrooms\UseCase\BusinessRules\Responders\UseCaseResponse;
use OpenClassrooms\UseCase\Application\Annotations\Log;
class AUseCase implements UseCase
{
/**
* @Log
*
* @return UseCaseResponse
*/
public function execute(UseCaseRequest $useCaseRequest)
{
// do things
return $useCaseResponse;
}
}
/**
* @Log(level="error")
* Log with the level 'error'
*
* @Log (message="message with context {foo}", context={"foo":"bar"})
* Log with standard message
*
* @Log(methods="pre")
* Log before the call of UseCase->execute()
*
* @Log(methods="pre, post, onException")
* Log before the call of UseCase->execute(), after the call of UseCase->execute() or on exception
*
* @Log(methods="pre", level="debug")
* @Log(methods="onException", level="error")
* Log before the call of UseCase->execute() with debug level and on exception with error level
*/
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.