PHP/CakePHP에서 재사용 가능한 코드를 작성할 수있는 방법을 알려줄 수 있습니까?cakePHP에 재사용 가능한 코드를 작성하는 방법은 무엇입니까?
답변
의 AppController
좋아 단일 [삭제] 함수를 작성 [방법], 내가 물린 것이다. 개별 컨트롤러에서 코드를 작성하는 것과 거의 똑같이 코드를 작성하면 은, 은으로 바뀝니다.
class AppController extends Controller {
var $components = array('Session');
function delete($id) {
$model = $this->modelClass; // holds the primary model name
if (!$this->$model->delete($id)) {
$this->Session->setFlash("Couldn't delete $model record $id.");
}
$this->redirect($this->referer());
}
}
Cake의 소스 코드를 통해 어떤 변수를 사용할 수 있는지 알아보십시오. 명확한 재사용이 가능한 구성 요소 및 동작에 대한 자세한 소스 코드를 읽어보고보다 구체적인 기술을 학습하십시오.
app_controller.php에서 메소드를 만들고 다른 컨트롤러에서 사용하십시오.
// app/app_controller.php
public function _foo($params){
// do something
}
// app/controllers/some_controller.php
public function foo($params){
$this->_foo($params);
// do something else
}
// app/controllers/other_controller.php
public function foo($params){
$this->_foo($params);
}
글쎄, 나는 아무도 구성 요소를 언급하지 않는다고 생각한다. 이것은 실제로 재사용 가능한 물건이 CakePHP에 있어야한다는 것을 의미한다. 적어도 내 의견으로는 컨트롤러가 유일하다. 모델이며 구성 요소는 컨트롤러에서 호출 할 재사용 가능한 코드를 저장하는 곳입니다.
클래스 내에서 코드를 재사용하는 경우 (클래스 외부에 실제 유틸리티가없는 경우) 실제로 수행하려는 작업에 따라 달라집니다. 구성 요소, 단지 클래스의 함수를 사용합니다. 그러나 하나 이상의 컨트롤러에서 거의 동일한 함수를 사용하여 자신을 발견하면 클래스에 넣습니다.
IMO 가장 좋은 방법은 그냥 클래스를 논리적 인 함수로 분해하려고 시도하고 클래스의 함수에서 나중에 구성 요소를 만드는 것에 대해서만 걱정하십시오. 즉, 다시 사용할 것인지 확실하지 않은 경우, 나중에 쉽게 수행 할 수 있기 때문에 처음에는 구성 요소로 만드는 추가 시간을 소비하지 마십시오 (그러나 조금 더 작업/얇음이 필요합니다. 그것을 통해 왕이) ...
당신이 미리 함수를 재사용 할 것이라는 것을 안다면 그냥 먼저 구성 요소에 넣으십시오.
(Cakephp의 다른 점은 모델, 컨트롤러, 구성 요소의 폴더 내에서 ... 당신이 자신의 폴더를 만들 수 있고 cakephp없이 파일을 넣을 수 있습니다. 당신이 컨트롤러의 무리를 가지고 있다면, 당신이 "사용자 프로파일 정보를 업데이트하는 것"이라고 생각하는 행동을하기위한 것이라면 컨트롤러에 대한 전체적인 올바른 디렉토리 (예 : 컨트롤러) 거기에 모든 것을 넣고 이것과 관련된 구성 요소 (구성 요소 디렉토리 내)에 대해서도 같은 작업을 수행 할 수 있지만이 폴더에서 컨트롤러를 호출하면 호출 URL에서 해당 폴더를 참조 할 필요가 없습니다. . 매우 지루한 작업을 절약하면서 수업 파일을 매우 체계적으로 유지하면서 편리하게 사용할 수 있습니다.)
올마이티 플러그인을 잊지 마세요. 나는 이것이 주된 질문에 대한 언급에 약간 어긋난다는 것을 알고있다. 그러나 cakephp에서 코드 재사용의 궁극적 인 형태는 플러그인입니다.
하지만 제발 어디서 플러그인을 사용하고 구성 요소를 사용하는 날 안내 할 수 있습니까 ??? – RSK
- 1. 재사용 가능한 코드를 넣을 곳
- 2. MVC 모델에서 재사용 가능한 비즈니스 로직을 작성하는 방법은 무엇입니까?
- 3. cakephp에 가능한 로깅 플러그인은 무엇입니까?
- 4. Visual Studio 2010에서 재사용 가능한 코드를 저장하는 방법은 무엇입니까?
- 5. 로깅을 수행하는 재사용 가능한 함수를 작성하는 방법
- 6. MIDI로 코드를 작성하는 방법은 무엇입니까?
- 7. 배포 가능한 소프트웨어를 작성하는 방법은 무엇입니까?
- 8. 재사용 가능한 Ruby-on-Rails 애플리케이션을 작성하는 것이 가능합니까?
- 9. 재사용 가능한 생성자 C++
- 10. 번역 가능한 성공 사례를 작성하는 방법은 무엇입니까?
- 11. PHP에서 가능한 모든 단어를 작성하는 방법은 무엇입니까?
- 12. 재사용 가능한 안드로이드 레이아웃
- 13. cakephp에 memcache를 구현하는 방법은 무엇입니까?
- 14. django 재사용 가능한 템플릿 코드
- 15. 이 코드를 어셈블리 코드로 작성하는 방법은 무엇입니까?
- 16. 효율적인 Java 코드를 작성하는 방법은 무엇입니까?
- 17. 이 코드를 작성하는 짧은 방법은 무엇입니까?
- 18. eval없이이 JavaScript 코드를 작성하는 방법은 무엇입니까?
- 19. 이 코드를 작성하는 올바른 방법은 무엇입니까?
- 20. 동적 VB.net 코드를 작성하는 방법은 무엇입니까?
- 21. 숫자 자바 코드를 작성하는 방법은 무엇입니까?
- 22. PHP 내부에서 HTML 코드를 작성하는 방법은 무엇입니까?
- 23. 파이썬에서이 PHP 코드를 재 작성하는 방법은 무엇입니까?
- 24. 마우스 이벤트 코드를 작성하는 방법은 무엇입니까?
- 25. Eclipse에서 LLVM 소스 코드를 작성하는 방법은 무엇입니까?
- 26. Django 재사용 가능한 응용 프로그램
- 27. 재사용 가능한 위젯 만들기
- 28. 재사용 가능한 TableView 헤더보기
- 29. Codeigniter 재사용 가능한 섹션
- 30. INotifyDataErrorInfo 재사용 가능한 메서드
중복 된 http://stackoverflow.com/questions/268258/how-do-you-make-code-reusable – deceze
하지만 cakePHP에서 몇 가지 도움말을 제공 할 수 있습니다 ........ – RSK
@deceze 하나 이상의 컨트롤러에서 사용할 수있는 AppController에서 메소드를 작성하는 방법을 예제로 제공 할 수 있습니다. – RSK