Как создать пакет laravel с некоторыми драйверами, имеющими дополнительные функции - PullRequest
0 голосов
/ 28 февраля 2020

Так что я довольно новичок в OOP PHP и Laravel. Я создаю новый пакет, который будет взаимодействовать с другими системами продажи билетов. Я хотел бы реализовать правильный способ сделать это с помощью интерфейса, репозитория и т. Д. c. Однако, как часть работы с интерфейсом, я знаю, что все классы, которые реализуют этот интерфейс, должны иметь одинаковые функции, например c.

Что делать, если у вас есть система заявок, которая имеет дополнительную функцию, которая Вы хотите реализовать. Можете ли вы сделать это, и должны ли вы это делать?

Например, система билетов A:

function getTicket
function createTicket
function closeTicket
function deleteTicket

Система билетов B:

function getTicket
function createTicket
function closeTicket
function deleteTicket

function lockTicket                     <--- Extra 
function someotherspecialfunctionTicket <--- Extra function

В любом направлении о том, как это должно быть сделано, будет принята с благодарностью.

Спасибо

1 Ответ

0 голосов
/ 28 февраля 2020

Вы можете иметь закрытые методы класса внутри указанного класса c без совместного использования или принуждения класса к их реализации.

interface Iticket
{
     public function getTicket();
     public function createTicket();
     public function closeTicket();
     public function deleteTicket();
}

class TicketA implements Iticket
{
    public function getTicket(){
        // TODO Implementation
    }

    // .... Implemented all of the interface methods

    // Then you can implement Class private methods, without sharing it to the outside world
    private function lockTicket(){

    }

}

class TicketB implements Iticket
{

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...