Программирую на PHP.
При разработке системы столкнулся с вопросом, где хранить и как называть файлы с интерфейсами.
Есть два подхода (с "Interface" и без него):
namespace Illuminate\Contracts\Auth\Access;
interface Authorizable
{
/**
* Determine if the entity has a given ability.
*
* @param string $ability
* @param array|mixed $arguments
* @return bool
*/
public function can($ability, $arguments = []);
}
и
namespace Symfony\Component\Translation\Dumper;
use Symfony\Component\Translation\MessageCatalogue;
interface DumperInterface
{
/**
* Dumps the message catalogue.
*
* @param MessageCatalogue $messages The message catalogue
* @param array $options Options that are used by the dumper
*/
public function dump(MessageCatalogue $messages, $options = array());
}
Посоветуйте так же по расположению интерфейсов в файловой системе: хранить их рядом с реализуемым классом, в отдельной папке "Interfaces" или иное?