문제

Kohana 3를 사용하여 중간 규모 웹 애플리케이션을 설정하는 방법에 대한 조언, 튜토리얼 및 링크를 찾고 있습니다.나는 과거에 MVC 패턴을 구현했지만 "정형화된" MVC 프레임워크에 대해 작업한 적이 없기 때문에 여전히 용어에 대해 머리를 숙이고 있습니다. 기본 예제를 가지고 놀고, 뷰와 템플릿을 만드는 등의 작업을 합니다.

저는 상당히 잘 진행되고 있지만 실제 웹 프로젝트(제가 꽤 오랫동안 계획해왔던 프로젝트 중 하나)를 학습 개체로 설정하고 싶습니다.

나는 예제를 통해 가장 잘 배우지만 현재 Kohana 3에는 예제 기반 문서가 약간 드물습니다. 사이트에서 스스로 그렇게 말합니다.진행하면서 프레임워크를 배우는 것에 대해 걱정하지 않지만, 코드 베이스가 처음부터 건전하게 구조화되었는지 확인하고 싶습니다.컨트롤러는 표준에 따라 훌륭하게 분할되고 이름이 잘 지정되었으며 가장 중요한 것은 비즈니스 로직이 적절한 크기의 모델로 분리되어 있다는 것입니다.

내 애플리케이션은 기본적으로 다양한 검색 및 목록 기능을 갖춘 비즈니스 디렉토리와 각 항목 소유자의 로그인 영역으로 설명될 수 있습니다.실제 관리 데이터베이스 백엔드는 이미 처리되었습니다.

모든 API가 이미 준비되어 있다고 가정합니다. 모든 업체 나열, 업체 편집, 거리 이름별로 업체 나열, 업체로 로그인된 제안 생성 등을 수행하고 기능을 다음에 적용하는 방법을 찾고 있습니다. MVC 패턴과 쉽게 확장할 수 있는 Kohana 애플리케이션 구조로 통합됩니다.

  • 디렉토리, 온라인 커뮤니티 등 "데이터베이스가 많은" 애플리케이션의 실제 사례를 알고 계십니까?Kohana 3에 로그인 영역이 구축되어 있고, 가급적이면 오픈 소스를 사용하여 어떻게 하는지 살펴볼 수 있나요?

  • 비즈니스 디렉토리 페이지뿐만 아니라 별도의 페이지에 있는 추가 제품도 처리할 수 있는 Kohana 프로젝트에서 최종 사용자를 위한 확장 가능한 로그인 영역을 구성하는 방법에 대한 규칙이나 모범 사례가 있습니까?

  • Kohana를 사용하여 복잡한 애플리케이션을 구축하는 데 유용한 리소스를 알고 계십니까?

  • 비슷한 것을 구축한 적이 있고 프로젝트 구조에 대한 권장 사항을 알려주실 수 있나요?

하사품

@antpaw가 나에게 많은 예제를 제공하는 몇 가지 비즈니스 로직이 포함된 Kohana 애플리케이션을 제공했기 때문에 나는 현상금을 @antpaw에게 수여합니다.@Pixel 개발자님의 훌륭한 의견에 감사드립니다. 현상금을 나눠줄 수 있는 경우가 종종 있었으면 좋겠습니다!

도움이 되었습니까?

해결책

로그인을 위해 kohana와 함께 제공되는 인증 모듈을 사용하겠습니다.그러면 가능한 권한 옵션을 설정하고 나중에 이를 사용자와 연결할 수 있는 역할 테이블이 제공됩니다.그런 다음 각 컨트롤러의 __constructor() 또는 action_function() 내부에서 사용자에게 필요한 역할이 있는지 확인할 수 있습니다.->has() 함수를 사용합니다.또한 테이블 간에 많은 관계가 있으므로 ORM 모듈을 사용해야 합니다. 정말 대단합니다.또한 ORM 객체 내부의 __get() 메서드는 매우 편리할 수 있습니다.

새 매개변수를 NULL로 설정하고 if 문에서 이를 확인하여 컨트롤러 기능을 확장하는 것도 매우 쉽습니다.예를 들어이전 항목을 편집하거나 새 항목을 추가하는 데는 하나의 기능만 필요합니다.

public funciton action_manage($id = NULL)
{
    $entry = ORM::factory('entry', $id); // if id is null a new entry will be returned 
}

보기 디렉터리가 지저분해지는 것을 방지하려면 보기를 하위 폴더로 구성하는 것도 중요합니다.

다른 팁

여기에 답변할 질문이 많습니다. 최선을 다하겠습니다.

디렉토리, 온라인 커뮤니티 등 "데이터베이스가 많은" 애플리케이션의 실제 사례를 알고 계십니까?Kohana 3에 로그인 영역이 구축되어 어떻게 작동하는지 엿볼 수 있나요?

몇 가지 예제 애플리케이션이 있습니다.Woody Gilk(Kohana 창립자)는 자신의 개인 웹사이트에 코드를 게시했습니다. 깃허브.로그인 영역에 쿠키 값을 할당합니다.Kohana 3 / 2.4는 쿠키에 서명하여 안전하게 만들고 세션 요구 사항을 제거합니다.이는 모든 사람의 취향에 맞지 않을 수 있으므로 항상 세션과 쿠키를 모두 사용하는 내장 인증 라이브러리를 사용할 수 있습니다.

귀하가 관심을 가질 만한 다른 프로젝트는 다음과 같습니다.

비즈니스 디렉토리 페이지뿐만 아니라 별도의 페이지에 있는 추가 제품도 처리할 수 있는 Kohana 프로젝트에서 최종 사용자를 위한 확장 가능한 로그인 영역을 구성하는 방법에 대한 규칙이나 모범 사례가 있습니까?

제가 올바르게 이해했다면 해당 페이지 각각에 대해 로그인 상자를 생성하시겠습니까?Kohana 3에서는 다음 기능을 활용할 수 있으므로 쉽습니다. 시간 HMBC에서Sam de Fressyinet은 iBuilding Tech Blog에 이 모든 내용을 자세히 설명하는 기사를 썼습니다. HMVC로 웹 애플리케이션 확장.

그런 다음 로그인 컨트롤러나 작업에 대한 내부 요청을 수행하고 응답을 보기 페이지에 덤프할 수 있습니다.

$login = Request::factory('login')->execute()->response;

$login에는 이제 원하는 곳에 넣을 수 있는 로그인 양식이 포함되어 있습니다.요청이 내부적인 경우 다른 응답을 반환할 수 있으며, 이것이 바로 이 코드 조각이 유용할 수 있는 이유입니다.

if (Request::instance() !== $this->request)
{
    print 'Internal called made with Request::factory';
}

Kohana를 사용하여 복잡한 애플리케이션을 구축하는 데 유용한 리소스를 알고 계십니까?

복잡한 애플리케이션을 구축하는 방법을 보여주는 문서는 없을 것입니다.Kohana 커뮤니티의 관점은 여러분이 PHP 개발자이고 이러한 문제를 스스로 해결할 수 있어야 한다는 것입니다.그렇게 할 수 없다면 Kohana를 사용하면 안 됩니다.

비슷한 것을 구축한 적이 있고 프로젝트 구조에 대한 권장 사항을 알려주실 수 있나요?

Kohana 3가 파일을 찾는 방법을 이해하면 이해하기 쉽습니다.

|- classes
|-- controller
|-- model
|- views

예를 들어:

Controller_Mathew extends Controller 

다음과 같은 파일을 찾습니다. mathew.php 안에:

classes/controller

밑줄을 사용하여 더 깊은 디렉터리를 지정할 수 있습니다.예:

Controller_Mathew_Davies extends Controller

라는 파일을 찾을 것입니다 davies.php 안에:

classes/controller/mathew/

보시다시피 컨트롤러 이름의 밑줄은 디렉터리 구분 기호 역할을 합니다.이는 모델과 바닐라 클래스에 적용됩니다.

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