문제

프로젝트와 같은 PHP CMS를 작업하고 있으며 PHP의 CRUD 기능을 다루는 가장 편리한 방법을 찾으려고 노력하고 있습니다.

CMS는 절차 적 PHP (OOP 없음 - 많은 사람들이 이것에 동의하지 않을 것임을 알고 있습니다 ...). 가능한 한 간단하고 가벼운 모든 것을 유지하고 고도로 재사용 가능한 기능과 코드 스 니펫을 만들었습니다. .

CMS를 사용하면 여러 모듈을 필요에 따라 설치 / 활성화 할 수 있습니다. 이 모듈은 다양한 유형의 컨텐츠를 설명하므로 아마도 페이지, 뉴스, 블로그와 같은 것을 가지고있을 것입니다.

이 각 컨텐츠 유형에 대해 CRUD 작업을 만들어야하며 이제는이를 달성 할 수있는 가장 편리한 방법을 찾으려고 노력하고 있습니다.

한 가지 요구 사항은 이러한 각 컨텐츠 유형에 대한 양식이 단일 외부 파일 (삽입 및 편집 모두)에 포함되며 플러스가 될 서버 측 입력 유효성 검사를 통합하는 방법이 있는지 여부입니다.

도움이 되었습니까?

해결책

CRUD 작업에 의해 (지루한) 데이터베이스 쿼리만을 의미합니까?

컨텐츠 유형 간의 몇 가지 공통 필드를 제외하고 특정 콘텐츠 유형에 대한 모든 데이터가 텍스트 필드에 직렬화 된 연관 배열로 저장되도록 데이터베이스를 쉽게 설정할 수 있습니다.

이러한 방식으로 CRUD 함수로 전달 된 데이터가 맹목적으로 직렬화되기 때문에 특정 컨텐츠 유형을 CRUD로하려면 1 개의 쿼리 세트 만 있으면됩니다.

예를 들어, 콘텐츠 제목, 생성/업데이트 날짜, 태그 및 간단한 설명이 공통 데이터로 간주된다고 선언합니다. 거기에는 블로그와 페이지 콘텐츠 유형이 있습니다.

아마도 데이터베이스 테이블을 만들 것입니다.

CREATE TABLE `content` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR  NOT NULL,
  `short_description` TEXT  NOT NULL,
  `tags` TEXT ,
  `data` TEXT ,
  `content_type` INT  NOT NULL,
  `created_at` DATETIME  NOT NULL,
  `updated_at` DATETIME  NOT NULL,
  PRIMARY KEY (`id`)
)

(계속해서 content_type의 참조 테이블을 만들어 낼 것이라고 가정합니다)

블로그에는 "Pingbacks"와 같은 데이터가 필요할 수 있지만 페이지에는 본문 만 필요할 수 있지만 블로그의 아래 예제와 같은 출력을 저장합니다.

$data = serialize(array(
    "body" => "Lorem ipsum",
    "pingbacks" => array()
));

업데이트는 쉽습니다. 데이터베이스에서 데이터를 가져올 때마다 컨텐츠 유형을 기반으로 선택한 양식으로 편집 할 데이터를 비소화합니다. 표시는 동일한 방식으로 작동하며 컨텐츠 유형을 기반으로 템플릿을 잡고 비시 지정된 데이터 배열을 보내십시오. 템플릿은 데이터가 어떻게 저장되는지 걱정할 필요가 없으며 $ data [ 'pingbacks']를 가져옵니다.

당신의 양식에 관해서는, 나의 제안은 당신의 반 OOP 언약을 깨고 양식 세대 라이브러리를 찾는 것입니다. 프레임 워크에서 추출 할 수 있다면 Zend_form ~와 함께 Zend_config 그리고 Zend_validate ~로부터 Zend 프레임 워크 (이 상황에서 모든 zend_config 금액은 XML 및 INI 파일을로드하고 트래버스하기위한 편리한 인터페이스입니다)는 인생을 정말 좋게 만듭니다. XML 파일이 각 컨텐츠 유형에 대한 양식을 정의 할 수 있으며, 페이지에서 양식을 렌더링하기 만하면 (콘텐츠 유형을 기준으로 XML을 잡고) 필터링 된 데이터를 잡고 "공통 필드"를 제거합니다. 이름, 생성/업데이트 날짜, 데이터베이스에 남은 것을 직렬화합니다. 특정 컨텐츠 유형에 대한 스키마에 대한 지식이 필요하지 않습니다 (엄격하지 않은 한).

개인적으로 제외하고 Zend_form (Zend_validate 및 Zend_config와 함께)을 잡고 사용하는 것을 강력히 추천합니다. 교의 ORM/데이터베이스 추상화 계층으로 데이터베이스에서 운영을 실행할 때 최소한 교리가 인생을 훨씬 쉽게 만들 수 있다는 것을 알 수 있습니다.

다른 팁

개인적으로 제외하고 Zend_form (Zend_validate 및 Zend_config 포함)을 잡고 ORM/데이터베이스 추상화 계층으로 교리를 사용하는 것을 강력히 추천 할 것을 강력히 제안합니다. 데이터베이스에서 운영을 실행할 때 최소한 교리가 인생을 훨씬 쉽게 만들 수 있다는 것을 알 수 있습니다.

나는 dcousineau에 동의합니다. 이미 완료되었을 때 왜 자신을 굴립니다. 나도 살펴볼 것입니다 Zend DB, PHP4 및 5 솔루션이 필요한 경우 PHP ADODB.

나는 최근에 학술 프로젝트를 시작했고 당신과 같은 소망을 가졌습니다. 결국 나는 PHP ADODB와 함께 갔다.

www.ajaxcrud.com을 제안합니다. 사용하기 쉽고 가벼우 며 몇 초 만에 오르고 달리게합니다.

당신은 이것을 시도 할 수 있습니다 : http://xcrud.com, 정말 도움이됩니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top