>  기사  >  백엔드 개발  >  Phalcon 입문 시 꼭 알아야 할 기능 'Phalcon 입문 가이드 시리즈 2'

Phalcon 입문 시 꼭 알아야 할 기능 'Phalcon 입문 가이드 시리즈 2'

咔咔
咔咔원래의
2021-07-07 16:07:282832검색

우리는이 시리즈의 예를 통해 Phalcon을 배우십시오. 1. Project Architecture 1. 프로젝트 아키텍처

2. 항목 파일

3. nginx
  • 4. 컨트롤러 점프
  • 5. 데이터베이스 추가, 데이터베이스 추가, 삭제, 수정, 확인
  • 데이터 삽입
  • 데이터 수정
  • 데이터 삭제
  • 6. 코드 최적화
    • 요약
  • 이 시리즈의 내용
1. 설치 중 P halcon "Phalcon Pit Guide Series 1" on Windows

머리말

이전 글
에서는 Phalcon 설치 방법을 소개했고, Phalcon 개발 도구를 사용하여 프로젝트, 컨트롤러, 모델을 생성했습니다. 몇 가지 간단한 작업만 수행했습니다.

이번 호에서는 Phalcon의 실제 활용에 대해 계속해서 이야기하겠습니다.

1. 프로젝트 구조

Phalcon 입문 시 꼭 알아야 할 기능 Phalcon 입문 가이드 시리즈 2

위 그림을 보면 이 디렉터리 구조가 TP 프레임워크와 매우 유사하다는 것을 알 수 있습니다. 해당 디렉터리는 하나씩 설명하지 않겠습니다. 그 중 마이그레이션 디렉토리를 알려드리겠습니다.

이 디렉토리는 laravel의 데이터베이스 마이그레이션과 같습니다. 사용법에 대해서는 자세히 설명하지 않겠습니다.

프레임워크 구조는 고정되어 있지 않습니다. ThinkPHP와 마찬가지로 네임스페이스를 등록하여 디렉토리 구조를 수정할 수도 있습니다.

Kaka의 최근 프로젝트도 Phalcon 프레임워크에서 여러 모듈을 사용하여 개발되었습니다. 그러나 디렉토리 구조도 Phalcon 개발 도구를 사용하여 생성된 디렉토리와 다릅니다.

아무리 달라도 모두 똑같습니다.

2. 엔트리 파일

모든 프레임워크의 필수 파일인 index.php는 모든 개발자의 기본 파일인 것 같습니다.

Phalcon 입문 시 꼭 알아야 할 기능 Phalcon 입문 가이드 시리즈 2

그럼 Phalcon 프레임워크에서도 꼭 필요한 부분입니다.

여기에 로드된 내용에 대해서는 소스 코드를 자세히 분석하지 않겠습니다. 想看源码解析的可以去搜索ThinkPHP框架源码解析。

일반적인 구현은 /config/services.php필요한 파일을 소개하세요 집중할 곳은 데이터베이스 연결이 이루어지는 곳입니다. /config/services.php引入一些文件其中你要着重知道的是在这里进行了数据库的连接。

这个文件/config/router.php看名字就知道是什么,路由呗!怎么设置路由,后边再说。

在就通过第一步依赖注入后获取配置信息。

最后一行代码就是include APP_PATH . '/config/loader.php';

이 파일/config/router.php이름, 라우팅만 봐도 알 수 있습니다. ! 라우팅을 설정하는 방법은 나중에 설명하겠습니다.

의존성 주입의 첫 번째 단계를 통과한 후 구성 정보를 가져옵니다.
🎜🎜🎜코드의 마지막 줄은 include APP_PATH . '/config/loader.php';등록은 다음에서 가져옵니다. 구성 정보 디렉토리. 🎜🎜🎜🎜🎜🎜3. Nginx🎜🎜 구성

첫 번째 기사에서는 프로젝트가 구성되지 않았습니다. 다음은 간단한 구성을 해보겠습니다.

Phalcon은 세 가지 구성 방법을 제공합니다. 먼저 가장 간단한 방법을 사용해 보겠습니다.

server {
        listen        80;
        server_name  www.kakaweb.com;
        root   "D:/phpstudy_pro/WWW/phalcon/public";
        index index.php index.html error/index.html;
	    location / {
	        try_files $uri $uri/ /index.php?_url=$uri&$args;
	    }

        
        location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9002;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
	
	    location ~ /\.ht {
	        deny all;
	    }}

위 내용은 PhpStudy도 사용하고 계시다면 바로 복사해서 사용하시면 됩니다.

4. 컨트롤러 점프

첫 번째 글에서는 phalcon 개발 도구를 사용하여 컨트롤러와 모델을 생성했습니다. 아직 프로젝트를 생성하지 않으셨다면 첫 번째 글을 읽어보시기 바랍니다. !

먼저 방문이 어떻게 진행되는지 살펴보겠습니다.

Phalcon 입문 시 꼭 알아야 할 기능 Phalcon 입문 가이드 시리즈 2

코드 구현

Phalcon 입문 시 꼭 알아야 할 기능 Phalcon 입문 가이드 시리즈 2

인덱스 컨트롤러에는 또 다른 메소드 카카도 확립되어 있는 것을 볼 수 있습니다.

메인스트림 프레임워크는 인덱스 컨트롤러를 기본 액세스 경로로 구성되어 있습니다. 이 카카에 액세스하는 방법은 다른 프레임워크와 동일합니다.

링크를 방문하세요http://www.kakaweb.com/index/kaka.

즉, 도메인 이름 + 컨트롤러 + 메소드 이름입니다. 여기서 메소드 이름에는 Action이 포함될 필요가 없습니다.

Phalcon 입문 시 꼭 알아야 할 기능 Phalcon 입문 가이드 시리즈 2

공식 사례를 연습해보세요.

Phalcon 입문 시 꼭 알아야 할 기능 Phalcon 입문 가이드 시리즈 2

출력 결과가 링크임을 알 수 있습니다.

Phalcon 입문 시 꼭 알아야 할 기능 Phalcon 입문 가이드 시리즈 2

이 링크는 가입 컨트롤러로 직접 이동합니다. 그런 다음 개발자 도구를 사용하여 이 컨트롤러를 생성합니다.

Phalcon 입문 시 꼭 알아야 할 기능 Phalcon 입문 가이드 시리즈 2

그런 다음 지금 바로 버튼을 클릭하면 가입 컨트롤러로 이동합니다.

Phalcon 입문 시 꼭 알아야 할 기능 Phalcon 입문 가이드 시리즈 2

컨트롤러에 관한 모든 것입니다.

5. 데이터베이스 추가, 삭제, 수정 및 쿼리

모델 파일에는 두 가지 메소드가 미리 정의되어 있는 것을 볼 수 있으니 먼저 시도해 보겠습니다.

Phalcon 입문 시 꼭 알아야 할 기능 Phalcon 입문 가이드 시리즈 2

다음 코드를 컨트롤러에 직접 작성하세요

Phalcon 입문 시 꼭 알아야 할 기능 Phalcon 입문 가이드 시리즈 2

Query results

Phalcon 입문 시 꼭 알아야 할 기능 Phalcon 입문 가이드 시리즈 2

find 메소드가 모든 데이터를 가져오는 것임을 알 수 있습니다

findFirst는 첫 번째 데이터
    find(15)는 ID가 15
  • find("type = 'mechanical'")인 데이터를 쿼리합니다. 조건부 검색
  • Insert data

实现代码

    public function holdAction ()
    {
        $user = new User();

        $phql = "INSERT INTO User (name, age, sex) VALUES (:name:, :age:, :sex:)";

        $status = $user->modelsManager->executeQuery($phql, array(
            'name' => "咔咔1",
            'age' => 24,
            'sex' => 1
        ));

    }

Phalcon 입문 시 꼭 알아야 할 기능 Phalcon 입문 가이드 시리즈 2

这里需要注意一下这个SQL语句$phql = "INSERT INTO User (name, age, sex) VALUES (:name:, :age:, :sex:)";

在这里User指的是模型,并不是数据库表名。

修改数据

实现代码

    public function modifyAction ()
    {
        $user = new User();

        $phql = "UPDATE User SET name = :name:, age = :age:, sex = :sex: WHERE id = :id:";

        $status = $user->modelsManager->executeQuery($phql, array(
            'id' => 20,
            'name' => "咔咔2",
            'age' => 25,
            'sex' => 2
        ));
    }

Phalcon 입문 시 꼭 알아야 할 기능 Phalcon 입문 가이드 시리즈 2

Phalcon 입문 시 꼭 알아야 할 기능 Phalcon 입문 가이드 시리즈 2

    public function deleteAction ()
    {
        $user = new User();

        $phql = "DELETE FROM User WHERE id = :id:";

        $status = $user->modelsManager->executeQuery($phql, array(
            'id' => 20
        ));

    }

可以看到已经没有结果了

Phalcon 입문 시 꼭 알아야 할 기능 Phalcon 입문 가이드 시리즈 2

这时你会发现,在检索数据的时候用的框架自带的方法,到增、删、改使用的类似于原生了。

对于这个问题,如果你是新手建议会那种方式就用那种方式,因为工期可不等你。

Kaka가 프레임워크 수정 사용법에 대해서도 알려드릴 테니 걱정하지 마세요.

6. 코드 최적화

섹션 5에서 이 문제를 발견하셨나요?

Phalcon 입문 시 꼭 알아야 할 기능 Phalcon 입문 가이드 시리즈 2

모든 방법에서 User 모델은 인스턴스화되며 괜찮습니다.

하지만 프로젝트 초기에 전체 프로젝트에 이 방법을 사용하다가 중간에 이름을 변경해야 한다면 어떻게 하시겠습니까?

User 키워드를 글로벌하게 검색해서 수정된 이름으로 바꾸시겠어요?

솔직히 어디서 문제가 발생할지 모르기 때문에 감히 이런 작업을 하는 프로그래머는 많지 않습니다.

그래서 카카가 이러한 모델들을 통합 관리하는 방법을 알려드리겠습니다.

Phalcon 입문 시 꼭 알아야 할 기능 Phalcon 입문 가이드 시리즈 2

모델을 원하는 방식으로 선언할 수 있습니다.

그런 다음 컨트롤러에서 초기화하고 여기에서 모델을 인스턴스화합니다.

이 시점에서 테이블 이름이 변경되면 초기화 방법에서 이름만 수정하면 된다고 생각하시나요?

요약

이 글에서는 프레임워크를 사용할 때 필요한 기능을 소개합니다.

추가, 삭제, 수정, 확인 과정에서 네이티브와 유사한 방식을 사용하지만, 어떤 프레임워크에서도 이 방식을 거의 사용하지 않습니다.

하지만 어느 쪽이든 다 코드겠죠? 비웃지 마십시오. 프레임워크 기능은 마음대로 변경될 수 있지만 이러한 SQL 문은 결코 변경되지 않습니다.

배움의 끈기, 쓰기의 끈기, 공유의 끈기는 카카가 창립 이래 줄곧 지켜온 신념입니다. 거대 인터넷에 올라온 카카의 글이 조금이나마 도움이 되었으면 좋겠습니다. 저는 카카입니다. 다음에 만나요.

위 내용은 Phalcon 입문 시 꼭 알아야 할 기능 'Phalcon 입문 가이드 시리즈 2'의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.