Паттерн не в пхп, паттерн он "вообще" относительно дизайна программы. В общем случае - это отношения между классами.
Паттерны придумали что бы классифицировать различные ситуации, возникающие в процессе разработки и подобрать этим ситуациям наиболее удобное, с точки зрения дизайна, решение.
Например decorator используется в случае когда необходимо "довесить" функциональность на экземпляр какого-либо класса. То есть фактически декоратор позволяет изменить поведение объекта, которое жестко закодировано в классе, за счет "обертки", которая представлена другим экземпляром другого класса с аналогичным интерфейсом. И все это делается в реальном времени, то есть в процессе работы программы. А это может понадобиться например когда мы не уверены, что изменения декорируемого класса у нас не аукнутся нехорошими последствиями.