WordPress 및 객체 지향 프로그래밍 – 개요

게시 됨: 2021-04-20

WordPress 개발자라면 절차적인 방식으로 코드를 작성할 가능성이 높습니다. 당신은 몇 가지 간단한 순서 단계를 설정하고 원하는 결과를 달성하고 문제를 해결하기 위해 따르십시오. 간단한 예는 아래와 같은 WordPress 루프입니다.

 <?php if ( have_posts() ) { while ( have_posts() ) { the_post(); // // Post Content here // } // end while } // end if ?>

루프에서 먼저 실행 중인 쿼리에 해당하는 게시물이 있는지 확인하고, 그렇다면 while 루프를 사용하여 게시물을 반복하기 시작합니다. functions.php 파일에 삽입할 모든 사용자 정의 함수에 대해서도 마찬가지입니다.

이 기사에서는 절차적 프로그래밍에서 벗어나 객체 지향 프로그래밍(OOP)이라는 프로그래밍 스타일을 살펴보겠습니다. 이것이 지금까지 프로그래밍 스타일로 사용했던 것과 어떻게 다른지 살펴보고 몇 가지 장점을 살펴보겠습니다. 그러나 가장 중요한 것은 객체 지향 개념이 워드프레스 환경에서 어떻게 작동하는지, 그리고 그것들 사이의 관계를 설명할 것입니다.

더 깊이 들어가기 전에 설정하고 싶은 것은 객체 지향 프로그래밍의 역할과 사용하기에 적합한 시기에 대해 배우는 것이 중요하다는 것입니다. 객체 지향 플러그인 또는 테마를 빌드하는 방법을 배우는 것이 프로젝트에 적합할 수 있지만 이 경우를 이해하는 것이 중요합니다. 이 기사가 특정 프로젝트가 객체 지향 코드로 작성하기에 적합한 시기와 이유를 이해하는 데 도움이 되기를 바랍니다.

문제

WordPress 자체는 이미 절차적으로 생각하도록 유도했습니다. 그리고 워드프레스는 항상 PHP 객체를 사용하지만 워드프레스 자체가 객체 지향을 따르지 않습니다. 이것은 OOP에 대한 일반적인 오해이며 많은 사람들이 WordPress가 객체 지향은 아니지만 객체 지향이라고 믿는 이유입니다.

절차적 프로그래밍 사용을 자제해야 한다고 말하는 것이 아니라 이러한 코딩 스타일에 제한이 있는 것이 사실이라는 점을 명확히 하는 것이 중요합니다. 예를 들어 테마나 플러그인을 사용자 정의할 때 절차에 따라 코드를 작성하면 원하는 HTML 출력을 얻을 수 있습니다. 그러나 확장성과 향후 유지 관리는 어떻습니까?

사용자 정의 플러그인을 구축할 때 재고를 갖고 확장 가능성을 평가하는 것이 매우 중요합니다. 예를 들어 플러그인이 성숙해짐에 따라 추가 기능을 추가하여 플러그인을 성장시킬 수 있기를 원할 것입니다. 이 시점에서 절차적으로 코딩할 때 코드를 구성하는 데 어려움을 겪기 시작합니다.

그러나 플러그인을 코딩하지 않더라도 절차적 프로그래밍을 사용하면 모든 것이 더 이상 어떻게 결합되는지 확신할 수 없는 지점에 도달할 위험이 항상 있습니다. 결과적으로 작은 변경 하나하나가 의도하지 않은 결과를 초래할 수 있습니다.

객체 지향 프로그래밍은 더 복잡한 문제를 해결하는 데 사용됩니다. 절차적 프로그래밍과 동일한 목표를 공유할 수 있지만 많은 경우 더 나은 작업 방식을 제공합니다. 이를 통해 재사용 가능하고 조직적이며 안전한 문제에 대한 대담한 솔루션을 만들 수 있습니다.

객체 지향 프로그래밍이 문제를 해결하는 방법

객체 지향 프로그래밍에는 클래스객체 라는 두 가지 중요한 개념이 있습니다.

클래스는 본질적으로 객체를 만드는 데 사용되는 템플릿입니다. 각 개체에는 고유한 메서드와 속성 집합이 있으며 이러한 속성의 값은 다를 수 있습니다.

따라서 진행하기 전에 객체가 무엇인지 이해하는 것이 중요합니다. 간단한 문장을 예로 들어 보겠습니다.

'나는 녹색 사과를 먹습니다'.

Apple은 Object, 녹색은 Object의 색상(Object 속성)이며 동사 'eat'는 메서드(함수)입니다.

클래스는 그것을 사용하는 모든 객체의 속성과 동작을 정의합니다. OOP로 문제를 해결하려면 이러한 프로그래밍 '벽돌'을 올바른 방식으로 결합해야 합니다.

다이빙을 시작하기 전에 중요한 첫 번째 단계는 제안된 솔루션을 설계하는 데 시간을 들이는 것입니다. 본질적으로 해야 할 일은 다음과 같습니다.

  1. 문제를 정의하고 플러그인이 문제를 해결하기 위해 수행해야 하는 작업
  2. 클래스와 클래스의 관계 및 객체 간의 상호 작용을 설명합니다.
  3. 모든 것을 코드로 전환
  4. 프로젝트 검토 및 테스트

이 단계에 있는 동안 첫 번째 시도에서 완벽하게 성공하면 운이 좋다는 것을 기억하십시오! 문제를 해결할 올바른 개념을 얻을 때까지 처음부터 다시 시작해야 합니다. 나중에 충돌 없이 팀으로 사용할 수 있는 일련의 도구를 제공하는 창의적인 프로세스의 일부로 고려하십시오.

OOP와 관련된 다음 기사에서 우리는 위의 모든 이론에 생명을 불어넣을 간단한 예를 보여줄 것입니다.

객체 지향 프로그래밍의 특징

객체 지향 프로그래밍의 기능에 대해 알아보기 전에 간단한 비유로 어떻게 작동하는지 더 명확히 할 수 있는지 봅시다.

물을 끓일 때 사용하는 보일러가 있다고 가정해 보겠습니다. 우리는 기계를 사용할 때 특정 방식으로 사용합니다. 제조업체가 허용하는 유일한 방법입니다. 우리는 '켜기' 버튼을 눌렀을 때 보일러가 작동하는 방식을 무시할 수 없으며 솔직히 말해서 원하지도 않고 필요하지도 않습니다. 이는 두 가지 매우 중요한 이점을 제공합니다.

우선, 제한된 기능(즉, 약간의 물을 끓이기 위해)은 시스템이 더 강력하고 더 안전하다는 것을 의미합니다. 제한된 기능 세트와 '켜기/끄기' 버튼만 제공된다는 것은 사용자가 보일러 메커니즘 근처에 갈 수 없다는 것을 의미합니다. 기본적으로 이것은 잘못될 일이 적고 시스템이 전체적으로 더 강력하다는 것을 의미합니다. 조작의 단순성은 또한 그것을 사용할 수 있는 거의 모든 사람과 훨씬 더 사용자 친화적으로 만듭니다.

Pressidium으로 웹사이트 호스팅

60일 환불 보장

계획 보기

이것을 염두에 두고 이것이 객체 지향 프로그래밍과 어떻게 관련되는지 봅시다. 이론적으로 OOP에는 캡슐화, 상속 및 다형성의 세 가지 중요한 특성이 있습니다.

캡슐화 가 하는 일은 단일 엔터티 내에서 데이터와 동작을 그룹화하는 것입니다. 클래스 내에서 클래스의 사용 방법(보일러 버튼)을 정의하고 공개, 보호 또는 비공개 레이블을 사용하여 가시성을 제어할 수 있습니다. 이는 액세스 권한을 가진 사람을 제어할 수 있는 기능을 제공하기 때문에 매우 안전한 시스템이기도 합니다. 이것은 또한 유지 관리 및 사용이 더 쉽다는 것을 의미합니다.

상속 은 클래스 간에 코드를 재사용하는 데 도움이 됩니다. 한 클래스가 다른 클래스를 확장하는 경우를 예로 들 수 있습니다. 메뉴 또는 주석 구조와 같은 트리와 같은 데이터의 HTML 출력을 변경하기 위해 Walker 클래스를 확장할 때 이것을 사용했을 수 있습니다. 클래스 간의 관계를 이해하면 재사용 가능한 객체 지향 코드를 만들 수 있습니다.

마지막으로 다형성 은 이러한 모든 관계가 함께 작동하도록 하고, 클래스의 공통점을 정의하고, 이러한 공통 요소를 재사용하는 방법 및 다른 것과 관련이 있는지 여부를 정의합니다.

결론

몇 가지 구체적인 예가 없으면 위의 모든 내용이 여전히 약간 혼란스러울 수 있습니다. 그럼에도 불구하고 객체 지향 프로그래밍의 이면에 있는 이론을 설명하는 것이 중요하며 향후 기사에서 이 흥미로운 프로그래밍 방법을 실제 세계에서 사용하는 방법을 볼 수 있도록 몇 가지 유용한 예제를 통해 이를 진행할 것입니다.

우리의 목표는 OOP에 대한 일련의 기사를 읽고 나면 다양한 상황에서 이 프로그래밍 방법을 자신감 있게 사용할 수 있게 하는 것입니다. 그 동안 Wikipedia에서 OOP에 대한 읽기를 계속할 수 있습니다.

객체 지향 프로그래밍 시리즈의 2부를 읽으려면 여기를 클릭하십시오.