2009-06-09 2 views
11

사람들,PHP의 일반 선언 식 작성기

많은 PHP5 응용 프로그램에 공통적 인 PHP5 UI를 만들려고합니다.

  • FieldX> 3 FieldY = 5
  • FieldY = "밥"과 FieldZ가되지 않습니다 : 기본적으로, 사용자가 논리 연산자 (AND/OR)를 통해 결합 식을 지정할 수있는 식 작성기는 다음과 같이이다 널
  • FieldX> '2007년 5월 23일'OR

이상적으로, 그와 같은 시스템 파라미터의 목록을 지정하는 프로그래머 나 허용 것 (FieldY = 5 AND FieldY 널 아님) 사용자는 각각에 대해 (열) 및 데이터 유형을 선택할 수 있습니다. 또한 식을 정의하기위한 사용자 친화적 인 멋진 인터페이스를 제공합니다. 각 행에 여러 피커가있는 표 같은 것을 상상할 수 있습니다.

[Column] [조건] [Value] [AND/OR] ] [조건] [값] [AND/OR] ...

이와 비슷한 기능을하는 오픈 소스 구성 요소에 대해 알고 있습니까? 아니면 이런 종류의 기능 중 일부입니까?

답변

12

주의 사항.이러한 유형의 일반 표현식 빌더는 일반적으로 다양한 사용자 문제에 대한 우수한 솔루션으로 간주됩니다. 생각이 라인을 따라 이동하는 경향이있다 :

  • 사용자는 모든 다른 보고서를 원하는
  • 우리는 (그들이 그것을 이해할 수있는 경우에도)
  • 우리는하지 않습니다 그들에게 SQL 액세스를 제공하는 방법은 없습니다
  • 이 모든 사용자 지정 보고서를 쓸 시간이 있으십시오.
  • 따라서 특정 구문, 테이블 및 필드를 알지 않아도 쉽게 쿼리를 작성할 수 있습니다.

이것은 반드시 나쁜 생각은 아니지만 회사에서 발견 한 사실은 비 기술 사용자가 ANDS 그룹 또는 ORS 그룹보다 복잡한 표현을 이해하고 작성하는 데 어려움을 겪고 있다는 것입니다. 프로그래머가 이해하기 힘든 일입니다. 우리 중 대부분은 프로그래밍을 배우기 전에도 부울 논리를 직관적으로 이해할 수 있습니다.

프로그래머가 원하는 것을 표현할 수있는 완벽한 유연성을 제공하지 말고, 프로그래머가 백엔드에서 좀 더 복잡한 것을 정의 할 수 있지만 사용자에게 간단한 선택을 제공 할 수있는 UI를 작성하는 것이 좋습니다. 프런트 엔드에 있습니다. 분명히 말한 것보다 쉽습니다.

기억하십시오 - 때로는 최종 사용자의 어려움은 자신의 생각을 표현할 올바른 구문을 알지 못하는 것이 아니며 모호하지 않은 방식으로 생각을 공식화하는 방법조차 모르기 때문입니다. 비록 그들이 그렇게 쉬운 방법을 제공 받았다고하더라도.

참고 : 나는 최종 사용자가 항상 바보라고 말하지 않고 있습니다. 단지 마음이 우리 미친 개발자와 다르게 작동 할 수도 있습니다.

+0

을 달리고있다. 이것은 아주 좋은 점이다. 대부분의 사람들은 의사 결정 나무의 관점에서 생각하지 않습니다. –

-5

왜 템플릿 엔진 인 smarty을 사용해 보시지 않으시겠습니까? 당신은 단지 사용자 입력을 얻어 파싱 할 필요가있다.

이제 내가 생각하기에, 어떤 식 으로든 주사를 피하기 위해 사용자 입력을 점검해야 할 필요가 있습니다.

0

이것은 일반적으로 PHP보다 UI와 관련이 있다고 생각합니다. 당신은 당신의 질문을 다시 다루는 것이 좋습니다. 어쩌면 PHP에서 이러한 정의를 구문 분석하기를 원할 것입니다.이 경우 preg_replace_callback을 사용하는 것이 좋습니다.

0

개체 지향 쿼리 모델을 만드는 것으로 시작할 것입니다. 예 : Criteria-objects. 다음 단계는이 모델 구조를 조작 할 수있는 UI를 작성하는 것입니다.

0

최근에 나 자신이 이러한 기능을 수행했으며 IMHO, 자신 만의 구현을 작성하는 것이 더 쉽습니다.

+0

PHP로 만들었습니까? 일부 코드를 게시하는 데주의해야합니까? 감사합니다 – alex

+0

예, PHP. 실제로 그것은 절름발이 였고 간단했습니다. $ 규칙 = 배열 ​​( '필드'=> '이름'평등 '값'= '존 *', 'bit_operation를 들어, '행동 '=>'EQ ', // 테스트 : 여기에 규칙 구조 '=>'AND '//이 조건과 다음 조건 사이에 조인 } 규칙이 세션의 배열에 저장되고 SQL 쿼리 작성 기능에 의해 사용되었습니다. 클래스가 없거나 OOP가 없습니다 - 단지 :) –

+0

Arrgh, 코드 구조 없음 나를. –

1

매우 흥미로운 아이디어라고 생각합니다. 개인적인 용도로나 작업을 통해이 프로젝트를 진행할 계획입니까?

이 프로젝트에서 개인적으로 작업 할 계획이라면 직접 작성하고 오픈 소스 프로젝트로 전환해야합니다. 이미이 분야에 관심이있는 것으로 보이고 좋은 학습 경험이 될 것입니다.

그렇지 않으면 회사에서 어떻게 이런 식으로 가치를 찾을 수 있는지 알 수 있습니다. 프로그래머들에게 그들이 일을 조금 더 쉽게하고 장기적으로 배당금을 낼 수있는 또 다른 유틸리티를 제공 할 것입니다.

어느 쪽이든,이 프로젝트는 승리합니다. 많이 배우고 다른 사람들이 유용하다고 생각하는 것을 만들어야합니다.

1

이것은 정확히 구성 요소는 아니지만,이 유형의 기능을 구현하려면 Shopping Cart rule builder in Magento의 조건 탭을 살펴보십시오. 전자 상거래에 맞게 사용자 정의되므로 일반적인 데이터베이스 오버레이는 아니지만 훌륭한 조건 작성기 인터페이스가 있습니다.

+0

스티브에 어떤 버전이 있습니까? 나는 1.1.3을 사용하고 있다고 생각하는데, 이걸 가지고 있지 않다 ... – alex

+0

메인 수평 메뉴에서 프로모션> 장바구니 가격 규칙으로 가야한다. 그런 다음 새 규칙을 추가하십시오. 새 규칙 양식에서 왼쪽 '조건'탭을 클릭하십시오. 나는 1.0.19 + –