Kohana: A Lightweight PHP Framework

[세미나] [Kohana : 경량 PHP 프레임 워크] [브랜든 리우] [하버드 대학] [이 CS50이다] [CS50

TV] 안녕하세요 여러분 내 이름은 브랜든이다 나는 컴퓨터 과학을하고있는 대학에서 여기에 주니어이야, 오늘 우리가 이야기하는거야 PHP는 웹 개발 프레임 워크입니다 Kohana 오늘, 라이브 코딩 세미나가 될 것입니다 그래서 나는 기본적으로 5 ~ 10 분 Kohana가 무엇인지 설명 보낼거야 그리고 말 그대로 슈퍼 간단한 블로그를 구축하는거야 여기 말 그대로 처음부터 당신을 위해 우리는 Kohana 웹 사이트에서 코드를 다운로드 할거야 그리고, 우리는 블로그를 구축을 시작하는거야, 희망 매우 유익 할 것이다 당신은 아마도 볼 수 있기 때문에 어쩌면 내가 어떤 실수를 할 수 있습니다, 당신은 나를 그들로부터 복구 볼 수 있습니다, 나는이 블로그를 통해 구축 또는 당신은, 내 생각 프로세스를 볼 수 있습니다 그리고 그 사이에, 당신은 또한 프레임 워크 자체에 익숙해 있습니다

희망 그것은 매우 유익한 행사가 될 것입니다 첫째, 프레임 워크는 정확히 무엇인가? 지금까지 CS50을 복용 한 경우, 당신은 정말 어떤으로 근무 한 적이없는 프레임 워크 아직, 그리고 것은 이것이다 당신은 아마 이미 1 개 웹 개발 PSET을했습니다 과의 당신이 건물 웹 사이트 웹 사이트를 구축하고 유지하기 위해 계속 가정 해 봅시다 당신은 몇 가지를 발견하기 시작합니다 당신이 알 수 있습니다 우선 당신은 아마 같은 일을하고있는 것입니다 또 다시 모든 시간, 사용자가 입력 한 데이터를 청소 같은 것들, 특정 방식으로 파일을 정리 같은 것들

당신은 또한 아마 알 수 있습니다 다른 것은 코드이다 아주, 아주 난장판이 될 시작할 수 있습니다, 당신은, 혼란을 떠나 그냥 아주 힘든 시간을 유지있을 수 있습니다 또는 당신은 당신의 코드를 구성하기 시작하고 모듈 제조 할 수있다 특정 방식으로는 유지 관리하기가 더 웹 프레임 워크는 기본적으로 온 곳이다 많은 웹 사이트를 구축 한이 사람들은, 그들은 말했다, "우리는 우리가 웹 사이트를 구축이 매번 다시 할 필요가 없습니다" "왜 우리는 당신을 위해 모든 일을하는 패키지를하지 않습니다 매 시간 당신은 웹 사이트를 구축하고 싶어? " 그리고 당신은 새로운 웹 사이트를 만들 때 이렇게, 당신은 정확히 특정 웹 사이트에 대해 무엇인지에 초점을 맞 춥니 다 당신은 모든 다양한 구성을 반복 할 필요가 없습니다 과 코드의 분리 및 재 작성 코드 당신은 자주 당신이 웹 사이트를 만들 때해야 할 것이다

아이디어는 프레임 워크는 높은 수준의 코드를 작성 할 수 있다는 것입니다 낮은 수준의 세부 사항에 대해 걱정할 필요없이 낮은 수준의 세부 사항과 같은 수 있습니다 사용자가 입력 한 데이터를 정화 다루는 즉 당신이 정말로 걱정할 필요가 없습니다 뭔가 당신은 당신의 웹 할당에 대해 실제로 무엇에 집중해야합니다 그것은 상용구 코드를 많이 제거합니다

그것은 당신의 프로젝트를위한 아키텍처입니다 가장 인기있는 중 하나는 모델 – 뷰 – 컨트롤러 것 이는 내가 두 번째에 대한 이야기를하겠습니다 그리고 많은 시간이 프레임 워크는 일련의 절차를 구체화, 규칙 및 사용하는 모범 사례 그래서 당신은 웹 프레임 워크를 채택 할 때 당신은 어떤 방식으로 코드를 작성해야, 그것은 일반적으로 원칙의 설정에 동의 것 일반적으로 인정 된 사회의 코드를 작성하는 좋은 방법 그것은 더 유용, 코드를 더욱 유지 보수하게, 등등 등등 그리고 마지막으로, 일이 나는 프레임 워크에 대해 강조하고 싶은 라이브러리 대 제어의 반전에 대한이 아이디어, 그리고 것은 이것입니다

라이브러리 및 프레임 워크의 차이는 라이브러리이다 당신은 여전히 ​​메인 프로그램을 작성, 당신은 종류의 라이브러리를 호출하고 라이브러리에 호출하면 당신을 위해 뭔가를 할 수 있습니다 라이브러리와 프레임 워크의 차이 프레임 워크가 제어로 시작이다 그리고, 코드를 호출 그래서 당신은 그것을 생각할 수있다 – 이것이 그것이 framework–라고 왜 프레임 워크는 코드이 프레임 구조를 제공 당신은 구멍을 채우 이 두 번째에 더욱 명백해질 것이다 당신이 볼 때 나 프레임 워크의 컨텍스트 내에서 코드를 작성하기 시작합니다 당신은 내가 격차를 작성하고 있습니다 것을 볼 수 있습니다, 상기 프레임 워크는 거의 모든 이동 부분을 제어하는 나는 적절한 장소에 조각을 넣어해야합니다 오늘 우리는 Kohana에 대해 이야기하는거야 이는 많은 PHP 프레임 워크 중 하나입니다 웹 프레임 워크가 있으며, 거의 모든 단일 언어의 사람이있다, Kohana은 틀림없이 있기 때문에 내가 Kohana을 따기 해요 일반적으로 픽업 할 수있는 가장 쉬운 PHP 프레임 워크로 인정했다

그것은 가장 가벼운입니다 많은, 더 많은 기능을 갖추고 거기에 다른 사람이있다, 하지만 그들은 픽업하기 어려운 경향이있다 그리고 마지막으로, Kohana는 MVC 아키텍처를 사용합니다 그것은 우리가 문자 그대로 프로젝트를 구축 할 수있을만큼 경량 여기 바로 눈 앞에서, 그리고 당신이 할 수있는 거의 아주 쉽게 따라 할 MVC의 아키텍처는 무엇입니까? 그것은 모델 – 뷰 – 컨트롤러의 약자 어쩌면 당신은 당신이 지금까지 작성했던 코드에 대해 생각하는 경우 웹 개발의 Pset의 일부 이 중 일부를 볼 수 있습니다 만, 일반적으로는 쓰기를 시작할 때 더 복잡한 웹 응용 프로그램, 이 3 개 개의 세그먼트들 사이의 분할은 더 명백된다

나는 종류의 스택으로 여기에 MVC를 배치 종종 당신은 사람들이 웹 개발에 스택에 대해 이야기를 듣게 될 것입니다 이는 아이디어를 설명하는 것입니다 각 층은 각각의 구성 요소는 정말에만 통신을 시도 2 개 구성 요소 사이의 다른 누군가가 클라이언트 또는 브라우저로 웹 사이트에 액세스합니다 그들은 뷰 코드를 통해 프로그램과 상호 작용합니다 뷰 코드는 상기 제어기와 상호 작용한다 컨트롤러 모델과 상호 작용 그리고 모델은 SQL 데이터베이스와 상호 작용합니다

그리고 더 당신은 당신의 코드를 제대로 작성하는 경우 사이에서 호핑이 없습니다 이러한 것들을 어떻게해야합니까? 이 모델은 기본적으로 데이터를 다루는 코드의 조각이다 당신이 저장하는 객체로, 데이터베이스를 다루는 건, 또는 데이터베이스에서 해당 개체를 검색, 그 모든 모델에 의해 처리합니다 어쩌면 당신은 당신의 데이터베이스 객체를 가지고있다 우리는 게시물 할 필요 모델을 만들려고하고, 그래서 포스트는 몇 가지 속성을 가질 수있다

당신은 글을 그 게시물을 저장하거나 검색하는 주위의 기능을 가질 수있다 또는 등 등 게시물을 필터링, 그 모델에 의해 처리있어 모든 코드입니다 컨트롤러는, 애플리케이션 로직의 일종이다 다른 많은 것들을 응용 프로그램 로직에 갈 수 있습니다 경우에 당신은 다른 API로 얘기 응용 프로그램의 로직을 상대하고있는 곳이 될 수있다 당신이하려는 경우 여러 다른 모델에서 데이터를 가져다 자주 컨트롤러에 의해 처리 될 수있는 몇 가지 방법으로 그들을 결합해야합니다 예를 들어, 페이스 북, 당신은 친구 사람의 경우, 그 관계를 구축 아마도 그 행위 제어기에 의해 수행 될 수있다

그리고 마지막으로,보기는 당신이 실제로 무엇을보고 생성하는 것 코드입니다 많은 시간 나는 CS50의 psets를 생각 그들은 정말이 3 가지를 분리하는 너희들을 권장하지 않습니다 당신은 아마 상단이 큰, 긴 파일 곳이있을 것이다 당신은 몇 가지 SQL 쿼리를하고 어쩌면 일부 처리를 할 데이터를 데이터베이스에서 검색, 다음은 맨 아래에있는 모든 HTML이있다 그리고 당신은 찾을 수 있습니다 당신은 더 많은 페이지를 만들 때 당신은 몇 가지 코드의 반복을 거라고, 또한, 문제는 파일이 정말 크고 긴 얻을 수있다 및 관리가 다루기된다 MVC는 잘 간주하는 이유 여러 가지 이유입니다

우선 문제의 무언가라고 분리입니다 당신이 잔 마셔요 때 아이디어는있다 이상적으로 코드의 한 조각이 1 일을해야 정말 잘 할, 당신은 다른 일을 할 코드의 조각을 결합해서는 안된다 예를 들어, 뷰 코드와 모델 코드, 그들은 정말 관련이있을 필요가 없습니다 그들은 같은 파일에있을 필요가 없습니다, 그래서 당신은, 그들을 분리 할 때 그래서 유지하기 쉽다 다른 것은 코드 재사용입니다 당신은 자신이 같은 SQL 쿼리를 작성하거나 일을 찾을 수 있습니다 1 개 함수로 추상화 될 수있는 유사한 쿼리, 그리고 그 모델과 컨트롤러 뒤에 생각, 프로젝트에서 다른 장소에서 다시 사용할 수있는 별도의 기능에 데

그리고 마지막으로, 즉, 코드를 건조에 묶여 여부를 자신을 반복, 자신을 반복하지 않는다 이 개발에 매우 ​​이해할 수있다 당신은, 당신은 당신이 자신을 반복하는 경우 때문에, 자신을 반복하지 않을 수 있습니다 때마다, 그것은 훨씬 더 비용이 많이 드는 유지하기입니다 당신이 한 일을 변경하려는 경우, 당신은 어디에서나을 변경해야, 그 버그로 연결, 그것은 끔찍한입니다 괜찮아

질문 지금까지 Kohana에 대해 전혀? 큰 이제 우리는 라이브 코딩 세션에 뛰어들 겁니다, 잘하면 모든 것이 잘 어울린다 나는 기본적으로이 웹 사이트를 구축하기 위하여려고하고있다 내 원격 서버 중 하나, 그리고 너희들도 할 수있는 방법에 웹 사이트를 확인하고 웹 사이트에 액세스, 또한 환경, 내 원격 시스템보다 더 구성되는, 그것은 리눅스 대신 OS X를 실행하고 있기 때문에 우리는 문자 그대로 시작하는 것입니다 KohanaFrameworkorg

나는 웹 사이트에서 코드를 다운로드 할거야 나는, 링크 주소를 복사거야 내 서버로 이동, 다운로드, 나는 그것을 추출하는거야 [학생] (가) 큰 텍스트를 만들 수 있습니다 무엇입니까? [브랜든 리우 즉 더 나은가요? [학생]이 행할 수 있습니까? >> [브랜든 리우] 네, 괜찮아요 나는, ZIP 파일을 다운로드 Kohana라는 디렉토리에이 압축을 푼 우리는 그 CS50-Kohana의 이름을 바꿀거야 과의은에 가자 신난다

여기에 서로 다른 파일들을 참조하십시오 여기에서의 모든 단일 파일을 통해 이동하지 않을 로지텍은 – 당신의 대부분은 무시할 수 우리의 시간 제약 때문에, 그러나 일반적으로는 Kohana, 당신이 제일 먼저 설치할 때 당신이 디렉토리로 이동되고, 당신은 기본적으로 어떤 환경 테스트 및 이것 저것을 다하겠습니다 환경이 제대로 Kohana를 실행하도록 설정되어 있는지 확인합니다 모든 것이 모든 권리 있는지 확인하십시오 당신은 전달 된 대부분의 것들을 볼 수 있지만, 일반적으로 당신은 항상이 1 개 문제로 실행 어디에 어떤 디렉토리에 쓰기 권한이 없습니다 불평, 그 때문에 일부 사용 권한입니다 나는 너희들이 CS50의 파일 권한에 대해 배운 얼마나 모른다 당신은 웹 개발을 할 경우, 당신은이 문제에 많이 실행하는 것입니다 나는 그것을 쓸 수 있도록거야 그리고 나는 또한에 있다고 생각 – 거기에 우리가 간다

자, 이제 당신은 모든 것을 통과를 볼 수 있습니다, 그리고 지금은 installphp 파일의 파일의 이름을 알려줍니다 나는 installedphp하는 installphp 파일 파일을 이동하는거야 지금은 새로 고침 경우, 그것은 나에게 약간의 오류를 제공하고, 디버깅이 들어오는 곳이다

당신이 실제로 무슨 일이 일어날 볼 수있는 곳이다 문제는, Kohana의 전제 조건은 기본적으로이다 프로젝트는, 도메인의 루트 디렉토리에 있습니다 그래서 당신이 demobrandonkliucom에있을 것으로 예상합니다 우리는 하위 폴더에 실제로 있다고 그것을 이야기해야합니다

그것은 CS50 Kohana라는 하위 폴더에 있습니다 문제는,이 CS50-Kohana을 잘못 해석 것입니다 내가 두 번째로 당신에게 설명 할 것이다 뭔가 다른, 같은 하지만 예상 할 수있는 무언가의 당신을 말해야한다 우리가 할 겁니다 것은 우리가 bootstrapphp이라는 폴더에 갈 것입니다, 이는 다른 많은 것들을이 설정되어있는 구성 폴더입니다

나는를 엽니 다 그리고 어쩌면 내가 할거야 최초의 것들 중 하나는 시간대를 변경할 수 있습니다 그리고 나서 보자 아하! 바로 여기에 다른 구성 말의 무리가 여기에있다, 하지만 내가 찾는 사람은 기본 URL이라는 것은,이다 기본적으로 나는 그것이 Kohana로 설정 얻을 하지만, CS50-Kohana에 그것을 바꿀거야 그리고 나는 그것을 해결한다고 생각합니다

네, 좋아요 기본적으로, 그것이 말하는, 그것은 작동하고 있음에 "Hello World"를 참조하십시오합니다 그 어디에서 왔을 까? 우리는 안녕하세요 세계에 어떻게 얻었 는가? 정확히 어디 실제로 쓴 코드는? 그것을 이해하기 위해, 나는 라우팅이라는 개념을 소개합니다 거의 모든 웹 프레임 워크, 라우팅이라는 개념이 특정 URL을 매핑합니다 소프트웨어의 조각은이다 당신의 프레임 워크 내에서 코드의 특정 부분에 일부 URL을 가지고 예를 들어, 당신은 foo

com/blog/all 같은 일부 URL로 이동 다음 프레임 워크는 할 것입니다 무엇을 – 또는 적어도 어떤 Kohana은 do– 것입니다 이 컨트롤러 블로그라는 클래스를 찾을 것입니다, 모든 기능이라는 조치를 실행하는 것입니다 나는 클래스와 기능에 대해서 이야기하고 알고, 나는 너희들하지 덮여 클래스와 기능을 알고 아직 CS50에서,하지만 지금은, 당신은 기능의 단지 그룹으로 수업 생각할 수있는, 함께 기능을 그룹화하는 방법입니다 그건 정말 당신이 알아야 할 모든입니다 우리는 우리의 폴더 구조를 보면 이제, 응용 프로그램 폴더 안에 클래스라는 또 다른 폴더가, 다른 폴더는 컨트롤러와 모델이라고합니다 당신이 컨트롤러 폴더 안에 보면, 우리는 오신 것을 환영합니다라는 파일이 있음을 볼 수 당신은, 컨트롤러에 오신 것을 환영합니다라는 클래스가 여기 볼 수 있습니다 및 작업 인덱스라는 함수가있다 그리고 그것이 무엇을하는 것은 안녕하세요 세계로 응답 본문을 설정합니다

코드가 기록되는 곳이다 또 다른 문제는 물론, 나는 가지 않았다이다 ㅋ, ㅋ, ㅋ, / 환영 / 인덱스입니다 내가 어떻게 여기까지 갔니? 글쎄, 그건 단순히 있기 때문이다 여기에 우리의 부트 스트랩 파일의 맨 아래에 우리는 우리의 경로를 설정 한 경우 당신은 그들이 당신을 위해 일부 기본값을 설정할 것을 볼 수 있습니다 기본 컨트롤러에 오신 것을 환영합니다 기본 동작은 지수입니다

우리가 거기에 아무것도 넣지 때 자동으로 시작 컨트롤러에 갔다 이유 인덱스 작업 모든 것은 지금까지 이해? 자, 당신은 컨트롤러로 이동보다 더 많은 일을 할 수 있습니다 특정 작업입니다 또한 컨트롤러 매개 변수에 전달할 수 있습니다 그냥 예를 들어, 난 당신을 보여주기 위해이 컨트롤러에 다른 작업을 추가 할거야 , 당신이 그것을 줄 당신이 무엇을 말하려고 있기 때문에 이제,이 작업 에코을 부르 자 그래서 나는 기본적으로 잡아거야 라우팅 프로그램에 나를 통해 전송 될 것 매개 변수, 당신은 여기에서 볼 수 있듯이, 이 라인은 바로 여기, 당신은 볼 수 있습니다 이것은 기본적으로 당신이 컨트롤러를 가지고 있고, 당신이 /가 의미, 그리고, 당신은 행동을, 그리고 다른 /이 그 매개 변수가 될 것, 그리고있어 우리는이 이름 ID를 가지고 있기 때문에 꺾쇠 괄호 안에, 그것은 우리가이 매개 변수의 ID를 명명하고 있음을 의미한다

나중에 내 컨트롤러 코드에서 내가 그 매개 변수의 보류를 잡아하려는 경우, 나는 내가 쓴 코드를 사용 ID라는 이름의 매개 변수를 찾을 수 있습니다 그게 내가 여기에 무슨 짓을했는지, 내가 돌아 말할거야, 그 "당신은 말했다" 그리고 지금은, 우리의 웹 사이트로 이동하는 경우 내가 CS50-kohana / 환영 / 에코로 이동 / Helloooo– 아, 맞아 내가 왼쪽으로 한 단계가있다 이 라이브 코딩 아이디어의 일부입니다

다음은 1 일입니다 어디 보자 그래서 일반적으로 이러한 웹 응용 프로그램의 많은 기본적으로 당신이 당신의 URL이 indexphp에 일을 포함해야 아이디어이기 때문에 indexphp에이 진입 점의 일종이다 응용 프로그램의하지만, 물론, 그 종류의 짜증나 가지고 있습니다

당신의 indexphp가 URL에 표시하고 싶지 않아요, 상자 밖으로와 거의 모든 웹 프레임 워크 이 indexphp에 문제가있는 그래서 당신은 그것을 제거 할 수있는 몇 가지 조치를 취합니다 그리고이 경우, 우리의 htaccess라는 파일을 사용하려고하는지 우리가 할 겁니다 것은, 이것은 아파치 웹 서버에 특정한 무언가이며, 그리고 재 작성하는 URL 등의 작업을 수행 할 수 있습니다 와, 등등 등등 URL을 리디렉션 및 Kohana 우리가 사용할 수있는 템플릿 htaccess로 파일을 제공 할만큼 좋다

당신이 볼 수 있듯이,이 examplehtaccess라는 파일이있다 우리는 htaccess로 해당을 복사하는 것입니다 나는이를 열고 편집 할거야, 기본적으로 서로 다른 것들을 잔뜩 않습니다 당신이보고 싶을 수도의 핵심 라인은 바로 여기에있다 이라는 규칙을 설정한다는 생각은있다 "그래, 당신이 무엇을 그에게 index

php를, 앞에 추가를 입력합니다" 당신은 그것을 볼 수 있습니다 * 아무 의미, 아무것도 일치 다음, 두 번째 부분은 $ 0 / indexphp를 인 와 $ 0 이전에 일치 된 무엇을 의미합니다

말이 돼? 하지만 변경할 정말 중요한 건이 재 작성 기준을 변경하고, 이는 URL 기지이다 당신이에서 작업하는 곳은 일종의 가정합니다 나는 그에게 CS50 Kohana를 추가하는거야, 이제 그 방법은 내가 indexphp를 제거하면, 그것은 작동한다, 나는 몇 가지 숫자를 추가 할거야 그것은 참으로 일했다 있음을 표시합니다 좋은 소리

질문 지금까지? [학생] 어떻게 123를 만들기 위해 알았 는가? 그게 인수인가? 정확하게 당신은 인수처럼 생각할 수 있습니다 하지만 이상한 점은,하지만, 방법 Kohana 그것을 않는다는 것입니다 그들이 정확히 인수처럼하지 않는 것입니다 이처럼 잡아해야합니다 당신은 요청 객체를 잡고 ID라는 것 매개 변수를 요청해야 그 이름 ID는 부트 스트랩 파일에서 온다 앞서 보였으며, 그 이름 ID는, 그 꺾쇠 괄호에 있었다 그것은 당신이 그 매개 변수를 잡아 방법입니다

신난다 다른 질문? 내가 말했듯이, 컨트롤러, 그들은, 애플리케이션 로직을 처리 당신이 that's– 볼 수있는 그래서 1 예이다 아주 기본적인,하지만 여전히 애플리케이션 로직이다, 매개 변수를 잡아 새로운 문자열을 만드는 아이디어 즉, "당신은 바보스런 일을했다"라고 한 다음에 그 뒤로 침 그리고 일반적으로 당신이하는 일은 서로 다른 컨트롤러를 만드는 것입니다 귀하의 웹 사이트의 다른 부분에 대해 별도의 컨트롤러를 만들 수 있습니다 오늘 우리는 아주 간단한 웹 사이트를 만들려고하고 아주 기본적인 블로그가 될 것

우리는 블로그의 게시물에 대한 새로운 컨트롤러를 만드는 것입니다 그러나 나는 또한 블로그 게시물에 주석을 추가한다면 나는 아마 그 의견에 대한 새로운 컨트롤러를 만들고 싶어한다 내가 사용자를 추가하고 싶었다면, 나는 아마 그 사용자를위한 새로운 컨트롤러를 추가, 그리고 일반적으로, 아이디어는 새로운 모델을 가지고 때마다 것입니다 당신이 상대하고있는 새로운 데이터 객체, 해당 데이터 객체에 대해 하나의 컨트롤러를 가지고있다 오늘 우리는, 1 데이터 객체로 작업하는거야 그리고이 글이 될 것 또한 당신은 테이블에 대응하는 것으로 데이터 객체 생각할 수 있습니다 일반적으로 각 테이블은 데이타 객체의 한 유형에 대응 그래서 포스트 테이블은 1 개 사후 모델이있을 것이다, 이는 1 개 포스트 컨트롤러에 대응 것, 과 의견, 등등 등등 누구나 같은과에 대해 동일합니다

그리고 엄지 손가락의 일반적인 규칙입니다 당신이 다를 수 있습니다 특별한 경우있을거야, 하지만 당신은 일을 할거야 무슨 시간의 90 % 그리고 나는 우리가 오늘 일을 할거야 무엇을 당신을 보여 드리죠 하나 개 더 개념은 우리가 코드로 다시 다이빙을하기 전에 객체 관계 매핑의 생각 너희들은 이미 웹 개발 PSET을 수행 한 당신은, 당신은 SQL 쿼리를 만드는 것을 본 적이 그것은 당신에게 반환 어떤 행입니다 당신은 어떤 이름으로이 행을 얻을하고 인덱스 그들 열 및 테이블의 이름, 당신이 그것으로 작동하는 방법과 그이야 그것은 조금 번거로울 수 있습니다

그러나 또한, 경우에 당신은 당신의 데이터베이스 내에서 관계를 같은 내가 의견과 게시물이있는 경우, 예를 들어, 어쩌면 내가 코멘트의 부모 포스트를 잡고 싶다 나는 SQL 단지 행을 사용하는 경우, 내가 얻을 수있는 모든 ID입니다 부모 포스트 아닌 실제 포스트 자체 우리가 코딩 할 때 그러나, 우리가 실제로 원하는 것은 실제로 잡아 것입니다 부모는 때때로 자신을 게시 할 수 있습니다 어떤 객체 관계형 매핑이하는 것입니다 그것은 데이터베이스 쿼리의 결과를 소요 와 작업하기가 훨씬 좋네요 당신을위한 객체로두고 일반 배열과 행보다 예를 들어, 지금은 아마도 주석이있을 때, 내가 부모 게시물을 잡고 싶어, 나는 어쩌면, 화살표 게시물을 언급 할 다음은 실제로 나에게 포스트 객체를 줄 것이다 실제 부모 포스트에 해당하지 그냥 ID, 이는 내가 다른 게시물을 잡기 위해 사용하고 다른 SQL 쿼리를 만들 것이다, 이는 귀찮고 불필요하다

그리고 또한, 개체로 모든 데이터 행을 매핑하여, 당신은 또한 객체에 더 많은 기능을 첨부 할 수 있습니다, 그래서 예를 들어, 나는 수업이 본질적 기능의 그룹입니다 방법에 대해 이야기했다 당신은 그런 식으로 생각할 수 있습니다 예를 들어, 어쩌면이 게시물 개체가, 어쩌면 내가 첨부 기능의 일종을 가지고 싶습니다 그 기본적으로 나은 최근 게시 알려줍니다? 참 또는 거짓, 그것은 지난 주에 게시 되었습니까? 그리고 내가 그 객체에 첨부 할 수있는 기능은이다 그것은 같은 장소에 그것을 가지고 정말 편리합니다, 당신이 만들 수있는 다양한 기능의 호스트가있다 이러한 개체에 대한, 그리고 클래스에 첨부 할 수있는 정말 좋은 데요, 객체에, 당신은 단지이 있다면 반면 행이 데이터베이스에서 오는, 당신은 정말 모든 기능을 첨부 할 수 없습니다 말 그대로 단지 데이터입니다 전혀 그것에 대해 질문? 으로 ORMs는 매우 일반적인 웹 개발입니다 그리고으로 ORMs의 다른 유형의 많이있다, 및 Kohana 자체 ORM있다

그것은 아주 기본적인,하지만 당신은 어떻게 생겼는지의 맛을 얻을 것이다 의 우리의 블로그 게시물에 대한 모델을 만들어 보자, 우리가 분명히해야 할 첫 번째 일은 실제 테이블을 만드는 것입니다 우리의 데이터베이스 내에서 실제로 그 게시물에 대한 우리의 데이터를 저장합니다 내가 할거야 우선 phpMyAdmin을로 이동합니다 너희들은 이전에 phpMyAdmin을 사용 했습니까? 좋아, 멋진, 그래서 너희들은 이미이 무엇인지, 내가 Kohana 게시물라는 새 테이블을 만들려고하고, 정말 간단 할 것입니다 나는 다시 로그인해야합니다

우리가 오늘 할거야 모든 저자와 몸을 가지고있다, 그냥 간단하게 그 테이블을 만들려고하고, 이제 우리는 우리의 게시물을 나타내는 테이블이 우리의 작가와 우리의 몸이 개 필드 내가 지금하기 위하여려고하고 다른 것은입니다 이 데이터베이스에 연결하는 방법을 알 수 있도록 내 웹 응용 프로그램을 구성, 이것은 다시, 당신은 모든 웹 응용 프로그램으로해야 할 것이다 무언가이다 당신은 그것을 사용자 이름과 암호를 말해야한다 그리고 등 등 데이터베이스의 이름 실제로 데이터베이스에 연결하는 방법을 알아낼 수 있습니다 Kohana, 우리는 데이터베이스 모듈이라는 것을 가지고 및 구성 폴더에 우리는 데이터베이스이라는 폴더가 당신이 볼 수있는 그리고, 설정의 무리가 여기에서 설정해야이 있습니다 사용자 이름과 암호 무엇을 이야기합니다 데이터베이스에 대한 그래서 실제로 연결할 수 있습니다

그리고 너희들이 실제로 알고 싶지 않기 때문에 사용자 이름과 내 데이터베이스의 암호 나는 이미 모든 설정 파일을 가지고 있고, 나는 복사하여 이상 붙여거야 신난다 괜찮아 나는 내가해야 할 모든 구성이라고 생각, 하지만 어디 보자 뭔가가 충돌하는 경우 우리는 그것에서 작업을 계속하고 있습니다 우리는 문제를 해결할 수 있습니다

이제 내가 할거야 것은 내가 새로운 컨트롤러를 만들려고하고있다 또는 실제로, 죄송합니다 우선 새로운 모델을 만들어야합니다 나는 Postphp라는 새로운 모델을 만들 수 있습니다 그리고 우리가 할거야 우리가 클래스 Model_Post를 호출하는거야입니다

일부 구문에 대한 강조 가져 오기, 내가 말할 때 등, "ORM가 확장,"그 기본적입니다 좀 더 객체 지향 프로그래밍, 이는 불행하게도 너희들은 아직 CS50에서 배운하지 않은 하지만 데리러 매우 쉽습니다 그것은 나에게이 ORM 패키지로 제공이 모든 추가 기능을 제공합니다 그래서 내가 무료로 추가 기능과 이것 저것 잔뜩 얻을, 이는 두 번째에 약간을 볼 수 있습니다 지금 실제로 내가 오직 할 필요가있는이 클래스를 만드는 것입니다 난 어떤 기능이나 아무것도 할 필요가 없습니다, 하지만 난 테이블을 나타내는 클래스를 만들었습니다, 나는이 ORM 클래스를 확장했기 때문에, 나는 무료로 물건을 잔뜩 얻을, 그래서 지금 당신은 아무것도 더 많은 위로를 설정할 필요가 없습니다 그리고 지금, 나는 새로운 컨트롤러를 만들려고하는 것입니다거야 무엇 내가 blog

php 이름을려고하는, 나는 시작 컨트롤러를 복사거야 그래서 나는 몇 가지 물건을 다시 입력 할 필요가 없습니다, 지금은이 이름을 변경해야합니다 지금은 확실히 모든 밖으로 작동하는지 확인하기 위해 테스트 할거야 무엇을, 내 데이터베이스에서 첫 번째 게시물을 잡아 갈거야 화면의 포스트의 몸을 인쇄 할 수 있습니다 내가 먼저 할거야 내가이 게시물을 저장하는거야 것을 수행하려면 우리는 일은 거야 그래서 어떤 변수 Kohana에 당신이하는 일은 포스트 개체를 잡아하는 것입니다 이 종류의 복잡하지만 당신이 ORM :: 공장이라는 일을해야한다, 그리고 당신은, 당신이 원하는 모델의 이름을 전달 그리고 그 모델을 나타내는 ORM 객체를 반환합니다

내가 말했듯이 그리고, 때 우리는 ORM 객체를 확장 우리는 무료로 모든 방법, 예를 들어, 그래서 얻을 우리는 "모두 찾을"라는 새로운 기능을 얻을 이는 자동으로 데이터베이스에있는 모든 단일 게시물을 반환 이는 매우 편리합니다 그리고 지금 몸에서 나는 돌아 갈거야 첫 번째 게시물과 몸을 반환합니다 그리고 물론, 내가 게시물을 작성해야합니다, 그래서 새로운 게시물을 삽입 할 수 있습니다 나는, "브랜든, 내 첫 번째 게시물을"말할 것이다 신난다

그리고 지금 우리는 블로그에 갈거야 모두가 잘 작동한다면 – 아, 이것은 다른 바보 파일 권한 것은 다시입니다 일초에 잡으십시오 그것은 부조리의 종류입니다 우리는 거기에 갈 괜찮아

나는 그 권한 문제를 해결 그것은 몇 가지 파일과 일부 로그를 만들려고했다, 그리고 권한을 다시 제대로 설정되지 않은, 그래서 그것을 만든 그래서 그 파일은 쓰기와 실행했다 그래서 실제로 일에 로그인 할 수 있습니다 지금은 나에게 또 다른 예외 말을주고 "클래스 ORM 찾을 수 없습니다" 나는 또 다른 단계를 잊었 때문에 그건 유감 이네요 부트 스트랩 폴더 파일에서 이러한 모듈은 여기에있다, 어떤 당신은 활성화 또는 비활성화 할 수 있습니다

이들은 당신이 사용하도록 선택할 수있는 다양한 기능의 무리입니다 종류의 좋은 Kohana, 내 예를 들면, 그들은 인증 모듈이 어떤 당신은 사용자를 인증하는 데 사용할 수 있습니다 구현하려는 경우 그들은 캐싱 모듈이 캐싱의 일종 다시 응용 프로그램 작업을 신속하고 이것 저것 할 끝난다 우리는 데이터베이스와 ORM 모듈을 활성화해야합니다, 내가 말했듯이 있기 때문에, 우리는 분명히 데이터베이스를 사용하고 우리는 또한 ORM 모듈을 활성화해야합니다, 우리가 가지고 좋은 추가 기능을 가지고 싶습니다 때문이다 내가 할 일은, 그 두 줄의 주석입니다 지금은 새로 고침하는 경우, 그것은 나에게 또 다른 오류를했다

그것은 "클래스 Model_Post 찾을 수 없습니다"라고 말한다 이제이 가지고 좋은 문제입니다 어디 보자 이 공개합니다 아니 잠깐

이런 이 것을 찾을 수없는 이유를 모르겠어요 그건 정말 이상하다 나는 바로 여기에이 클래스를 가지고있다 오 – 내가해야 할 수도 있습니다 것 같아요

난 너무 바보입니다 나는 PHP 태그를 추가하는 것을 잊었다 그 이유 지금은 그냥 행한 일 명 변경을 취소해야합니다 괜찮아

우리는 거기에 갈 그건 정말 바보였다 나는 여는 PHP 태그를 가지고 있지 않았다 당신이 볼 수 그러나, 지금은 오른쪽 제대로 작동이야? 우리는 1 개 게시물을 가지고있다 우리는 첫 번째 게시물을 잡고, 이제 우리는 몸을 인쇄

큰 환상적인 질문 지금까지? 아니? 질문? 좋아, 그래서 우리는 그냥 아주 기본적인 포스트 모델을 생성 우리는 나중에 일부 기능을 추가 할 것입니다 우리는 검증 및 필터링을 추가 할 수 있습니다 검증은 것들 중 하나입니다 프레임 워크는 정말, 정말 잘 당신을 위해 해결 것으로, 나는 너희들이 CS50의 PSET이 작업을 수행 할 수 있다고 생각하지 않습니다, 하지만 최종 프로젝트에 웹 개발을 할 경우, 당신은 가능성, 검증의 일종을하고 싶은거야 같은 빈 사용자 이름을 가지고 있지, 아마 적어도 일부의 길이, 그런 것들로 암호를 가진

그리고 그것은, 우리 자신에 의해 이러한 것들을 구현하기 정말 성가신 그리고 거의 모든 단일 웹 프레임 워크는 당신을 위해 그것을 않습니다 당신은 매우 깨끗한 방법으로 그것을 수행 할 수 있습니다 당신은 일반적으로 그 유효성 검사 규칙 표현 어디에 모델이며, 이 모델이 유효한지 여부를 확인하는 것 때문이다 하지만 지금, 우리는 나중에 때까지 넣어거야 그리고 지금 우리는 다른 부분에서 작동하는거야 우리가 시도하고 새로운 뷰를 만들려고하고 그 모든 게시물을 나열합니다 모든 게시물 목록에 대한 새로운 액션을하는 단계 모든 게시물의 목록을 잡아하는 것입니다 다음보기를 통해 모든 게시물의 목록을 렌더링합니다 바로 여기, 다행히만큼, 우리는 이미 모든 게시물을 잡고 이 첫 번째 줄을 사용하여 모든 기능을 찾을 수 있습니다, 지금 우리가하려는 것은 지금까지입니다 내가 직접 응답의 몸을 설정했습니다 문자열을 전달하여,하지만 지금은보기를 사용하려면, 와보기의 차이는 바로이 일을 나는 좋은, 큰 HTML 템플릿을 가질 수있는 전망되고, 그리고 내가 할 수있는 것은 그것에게 특정 변수를 전달하다 다음 자동으로 전망이 그 템플릿을 채 웁니다 이들 변수를 사용

내가 할거야 것은 내가 새로운보기를 만들 것입니다, 나는 ", 블로그 / 인덱스"와 같은보기 뭔가 이름을 수 있습니다 아, 내가 무엇을 쓰고 있어요 – 나는 기본적으로이 결합하는거야? 내 뇌는 다른 곳이다 내가보기에 게시물 변수를 바인딩하는거야 그래서 방법은 볼이 게시물 변수에 액세스 할 수 있습니다 그래서 지금은이보기를 작성해야합니다, 그래서 여기에 우리가이 폴더 불렀다 "보기" 먼저, 나는 그 전화에서 새 폴더를 만들거야 "블로그" 이거 좋다 그런 식으로 우리는 우리의 견해에 대한 좋은 계층 구조를 가질 수있다

그리고 나는 전화가 다른 파일을 만들거야 "indexphp를합니다" 신난다 사실, 이제 여기에 둘 다하자 뷰 파일을 만드는 것은, 아마 이것의 간단한 부분입니다 이들은 아마 당신이 익숙한 것들입니다

우리는 정말 간단한 일을 할 겁니다 말 시작 "블로그 게시물의 내 ​​목록입니다" 그런 다음 우리는 통과 할 수 우리는, 게시물의 배열을 반복 할 수 있습니다 모든 단일 게시물을 잡고 뭔가 말을 이렇게 어쩌면 줄을 추가 다음 작가와 몸을 인쇄 할 수 있습니다

확인 감각까지? 그리고 그것은 작동하는지 보자 아무 일도하지 왜 그런지 궁금합니다 아, 1 단계를 놓쳤다 나를 아주 바보

내가보기를 만들었지 만 나는 응답으로보기를 설정하지 않은, 그래서 당신은 한 가지 더해야한다 당신은 "이 응답 본문을"해야하고보기로 설정합니다 우리는 거기에 갈 우리는 우리의 제목을 가지고, 우리는 포스트를, 다만 차기를 들어, 다른 포스트를 삽입하자 그래서 우리는 목록을 볼 수 있습니다 그리고이이 글을 삽입, 지금은 페이지를 새로 고침하는 경우, 우리는 여기에 모든 게시물을 참조하십시오

즉, 지금까지 이해가 있습니까? 네, 질문? 좋아, 오 당신이 볼 수 있듯이, 우리는 이러한 코드를 분리 할 수있었습니다 다른 섹션으로, 다음은 뷰 코드를 가장 분명 볼 수 있습니다 보기를 나타냅니다 여기에이 파일, 그것은 단지 데이터를 표시, 데이터를 나타내는에 대한 관심 그것은 데이터 일종의 전달되는, 그리고이하는 모든 당신에게 보여 만한다 코드의 다른 모든 부분에서, 당신은 그 어떤 것도 걱정할 필요가 없습니다, 유사하게,보기 코드에 대해 아무것도 걱정하지 않습니다 방법 등 등 데이터베이스에 액세스하기 위해, 이는 정말 좋은 당신의 코드가 더 많은 유지 보수합니다

내가 말했듯이, 뷰, 그들은 그 동적있어 그것은 1 개 파일,하지만 서로 다른 뷰를 생성하는 것 당신이 실제로에 전달하는 변수에 따라, 나아가, 다른 헬퍼 기능이 많이 있습니다 당신은 당신이 더 빠른 코드를 작성하는 데 사용할 수있는, 어떤 난 그냥 두 번째 당신을 보여 드리죠 네 [학생] 그래서 $ 0 오른쪽 컨트롤러입니까? 그 두 번째 것은 문제는 $ 0 컨트롤러이다? $ 0 내가 바로 여기에 생성 된 변수입니다 내가 먼저보기를 만들었습니다

나는 몇 가지 변수에 할당 그런 다음,이 함수로 전달 응답 본문으로 설정 말이 돼? 클래스와 같은보기 [학생] 그래서보기 :: 공장,이다 또는 라이브러리 [들리지] 공장 기능? 문제는,보기 :: 공장 기능에 관한 것입니다 기본적으로이 본질적으로 좀 더 객체 지향 프로그래밍이다 "공장"보기 뷰 클래스이며,라는 방법이있다 그라는 것 오브젝트 잡을 수있는 방법이다 "블로그 / 인덱스를" 그리고 좀 더 객체 지향 프로그래밍 물건 너무 많이 여기에 갈 아니에요

이제 분명히, 우리는 새로운 게시물을 작성하려면, 하지만 우리는 데이터베이스를 통해 그것을 할 싶지 않아, 그래서 우리는 새 게시물을 작성하기위한 새로운 액션을 만들려고하고, 우리가해야 할 물건을 많이가있다 우리가해야 할 겁니다 우선 -의 하나가 이러한 것들을 하나를 해결하자 우리가 할 수 있습니다 첫 번째 것은 우리가 양식을 만들 수있어한다 새 게시물을 삽입, 그러나 나는 또한 먼저 새 작업을 추가거야 그래서 새로운 액션을 추가하는 것만큼이나 간단합니다 컨트롤러에 새로운 기능을 추가, 그리고 지금 나는, 아주 기본적인 일을 할거야 단지 당신을 위해 그것을 표시이보기를 잡고 그것을 게시 할 수 있습니다 그리고 지금은, 새로운 뷰 파일을 만들려고 나는 몇 가지 물건을 쓰기 시작하겠습니다 무엇 Kohana에 대한 좋은 것은 서로 다른 도우미 기능을 많이 제공하는 것입니다 더 쉽게보기 코드를 작성하기 위해, 그 도우미 함수 또는 헬퍼 모듈 1 서면 양식 주위에있다

양식을 작성, 난 정말 직접 HTML에게 자신을 작성할 필요가 없습니다 너희들은 HTML 양식을 작성했습니다 당신은 정말, 정말 고통스러운 형태를 쓸 번거로울 수 있습니다 방법을 알고있다 그것은, 다행히 재미없는, 그래서 우리는 기본적으로 사용 Kohana의 양식을 작성할 수 있습니다 양식 도우미 기능은 우리를 위해 그것을 할 수 있습니다 우리는 기본적으로 우리가 매일 일에 대한 필드를 할거야 그래서 저자 다른 하나는 몸 하나

우리는 라벨을 할거야, 우리는 입력이 될 것입니다 그리고 마지막으로, 우리는 제출이 될 것입니다 당신이 볼 수 있듯이,이 작성하기가 훨씬 더 깨끗 가지 좋은 모든 지저분한 HTML보다 허락하신다면, 그보다 더 깨끗한 그것을 가지고 다른 웹 프레임 워크가있다, 그러나 적어도이는 HTML 직접 작성하는 것보다 낫다 신난다는, 그래서 이것은 당신이 보는 것입니다

즉, 가지 지저분한입니다 그래서 나는 거기에 줄 바꿈을 추가 할거야 그 조금 더 좋은 보이게합니다 음, 물론, 그것은 여전히 ​​정말, 정말 나쁜 보이지만, 우리는 단지 초점을 맞추고있어 지금이 아니라 미학에 대한 기능에 시간은 모든 것을 할 수 없습니다 당신이 볼 수 있듯이, 지금 우리는 매우 기본적인 형태가 어떤 종류의 좋은입니다 내가 말을이 코드는 HTML 자신을 형성 작성하는 것보다 깨끗 그래서 좋은입니다

무엇 향후 계획? 이제 우리는 행동과 일을 할 필요가있다 일반적으로 사용자가 HTML 양식을 작성할 때, 당신은에 양식을 제출 것 곳을 이야기해야합니다 대부분의 웹 프레임 워크에서 기본적으로 물건은 그래서는 동일한 URL에 제출 당신이 / 블로그 / 새에 GET 요청을 보내는 경우, 그것은 당신에게 양식을 표시해야합니다, 하지만 데이터와 새 / 블로그 /에 POST 요청을 보내는 경우, 실제로 해당 게시물을 저장하려고한다 그것으로 뭔가 우리가 할 겁니다 것은 기본적으로 우리 모두는 POST 요청 또는 가져 오기 요청의 여부를 확인하기 위해해야 ​​할 일 설정할 수있는 포스트 변수가 무엇인지 확인하는 것입니다 포스트 변수가 설정되어있는 경우에, 우리는 시도하고 새 게시물을 작성하는 것입니다

다시 말하지만, 우리는 그냥 이렇게, 그것은 새 게시물을 작성하고, 우리는 문자 그대로 갈거야 이런 식의 필드를 설정, 그리고 우리는 그것을 저장하는 것입니다 그리고 나는 재거야 인덱스 페이지로 그들은 다시 글의 목록을 볼 수 있습니다 의 그 해보자 나는 ", 브랜든"라고 말할 수 있습니다 모두가 잘된다면 다음, 게시물을 제출하고 당신이 볼 수 있듯이, 그것은, 인덱스 페이지로 나를 리디렉션 나는 아래로 스크롤 경우, 우리는 새로 삽입 한 후이있다 야호! 네, 질문입니다

당신이 똑같은 일을 입력 한 경우에는 어떻게 [학생] 당신은 이전에 입력? 그것은 당신이 중복되지 않은 확인하십시오 않습니다 같은 제출? 때문에 default–에 의해, 기본, 아니 수 양식에서 동일한 데이터를 입력하면 죄송합니다, 질문은 그리고, 당신이 중복 개체를 삽입 할 수 있습니다, 그 제출 본질적으로 항목을 중복? 지금, 그래, 당신이 그렇게 할 수 있습니다, 데이터베이스에 완전히 중복 행이 완벽하게 유효 왜냐하면 즉 문제가되는 경우 그러나, 당신은, 예를 들어, 검증을 추가 할 수 있습니다 확인이 정확하게 이미 무엇인가와 같은 경우가, 다음은 잘못된 객체의 말, 그리고 당신은 당신의 오류 메시지를 지정할 수 있습니다 "이 이미 존재하기 때문에 잘못된을"또는 그런 뭔가 말 그러나이 경우에, 난 그냥 뭔가 중복을 만들 수 있습니다 이제 시도하고 몇 가지 검증을 추가 할 수 있습니다 이 권리의 문제는 지금이다 말 그대로 완전히 빈 포스트를 제출할 수 있습니다 지금은이 버튼을 클릭하면, 거기 우리는 간다

당신은 정말이 필요없는 줄 여기에 그것을 볼 수는 없지만 말 그대로 새 게시물이 있음을 나타냅니다 그냥 빈 저자 및 빈 몸을 가지고, 우리는 사람들이 그렇게하는 것을 허용하지 않습니다 검증이 들어오는 곳이다 나는 나의 모델 객체에 갈 수 지금은 지정하는 새로운 기능을 추가 할 수 있습니다 어떤 검증 규칙 나는이 모델에 추가한다 이 유효한지 확인하거나 유효한 게시물을로 의미 하는가 작업을 지정? 그리고 나는 경우에만 유효한 포스트 말하고 싶은 모두 저자와 몸 빈 아니며, 이것은 당신이 Kohana에 그것을 할 방법이다 당신은 "규칙"이라는 새로운 함수를 생성 다음은 기본적으로 연관 배열을 반환 즉,이 개체에 대한 유효성 검사 규칙을 정의합니다

우리는 배열을 반환하는 것, 그리고 우리가 할 겁니다 것은있어 그것은 배열에 간다 "저자"라고 이는라는 또 다른 배열에 간다 "비어 있지" 그리고 내가 말할거야 "몸을" 이 본 구조 괜찮 및 구문 조금 불편하고 조금 복잡하게 보일 수 있습니다 당신이 문서를 읽는다면, 그것은 알아 내기 위해 매우 간단합니다, 그러나 본질적으로 이것은 당신이 지정해야 할 것입니다 일부 유효성 검사 규칙은 다른 규칙을 많이하고있다 당신이 말하는 규칙을 추가 할 수 있습니다 같은 Kohana은 무료로 당신을 줄 것이다 그것은이 길이 이상이되어야합니다 아마 숫자이어야합니다

아마 알파 숫자이어야합니다 어쩌면 등등 등등 대부분이 길이이어야한다 Kohana 당신을 위해 제공하는 다른 규칙 많이 있습니다, 당신은 자신의 웹 사이트에 갈 수있는, 문서를 보면, 당신은 당신이 할 수있는 모든 다른 것들을 볼 수 있습니다 그러나 이것은, 내가 할 일은이다 지금의이 어떻게되는지 보자 나는 빈 게시물을 제출합니다 어떤 일이 일어날? 아, 아니, 나는 오류가 발생합니다

나는 유효성 검사 예외를 얻을 음, 좋아 그것은 내 모델이 무효라고 나에게 말했다 하지만 난 예외를 표시하지 않으 내 사용자들에게 그들이 바로, 유효하지 않은 뭔가를 제출하려고 할 때? 나는 그들에게 우호적 오류 메시지의 일종을주고 싶어 때 뭔가 잘못 간다 우리가하려는 것은 우리가가는 것입니다 시도 캐치 루프의 모든 포장 사실, 난이도 아직 배운하지 않은 뭔가 생각 CS50에서, C 때문에, 프로그래밍 언어 C, 예외지만, 거의 매일 다른 언어를 가지고 있지 않습니다 그래서 정말, 정말 간단하게, 예외가 예외는 코드 조각이 할 수있는 무언가이다 일이 잘못되면 예외를 발생, 최대하지만 코드 어쩌면 다른 조각 이상 그 예외를 잡아 그것으로 뭔가를 할 수 있습니다

예를 들어,이 경우, 모델을 저장하려고 코드의 조각, 이 모델의 유효성을 검사하고 말한다면, "좋아,이 모델은 무효" 예외를 던질 것, 이것은에 가지와 동일 C에서 당신은 그런 -1 또는 무언가를 반환 할 수 있습니다 그리고 나를 위해,이 기능, 내 코드 높은 수준에서, 나는 시도하고 그 예외를 잡을 수 있습니다 기본적으로 "나는 예외를 잡으면 좋아, 무엇을 내가 할 것입니까?"라고 아니면 내가 그 예외를 잡을 최대 누군가가 더 들어 가지 않도록 선택할 수 예외를 catch, 또는 아무도 그것을 캐치하지 않는 경우, 다음 전체 프로그램이 충돌하고 말한다, "문제가 발생했습니다, 나는 그것을 처리 할 수 ​​있습니다" 그러나 우리가 할 것은, 당신이 try 블록의 코드 조각을 포장입니다 다음은 또한, catch 블록이라는 것을 추가 어떤 시도하고 발생할 수있는 예외를 잡을 것입니다 코드의 일종이다 그래서 나는이 예외를 잡을 경우 또는 무효 예외는, 내가 할거야 후 어떤 것은 내가 오류를 설정하는거야 – 나는 내가 그건 을 어떻게 생각 나는 어떤 객체에 오류를 설정하는거야 그리고 내가 수행하는 것이이 예외를 안타되어 가고있는 무슨 이 리디렉션하지 않는 경우는, 리디렉션하는 것, 그리고 아니에요 경우 블로그에서 나오는 것 그리고 내가하고 싶은 원하는 새로운이 블로그를 /이다 명중한다 오류가있을 경우, 그때 폼에 다시 가고 싶어 그 오류를 표시합니다 이제 내가 원하는 내가 그 오류를 전달하려는 것입니다 보기에

좋아, 내가 바로 여기보기를 생각, 기본적으로 나는 그들이 존재하는 경우 그 오류를 표시합니다 내가 그에 대한 HTML을 작성하기 전에, 정말 빨리 갈거야 보여 어떤 변수 외모 등이 오류의 구조, 이것은 일반적으로 좋은 방법입니다 많은 시간 당신은 몇 가지 방법에서 다시 뭔가를 얻을 웹 프레임 워크의 일부 기능, 당신은, 변수가 어떻게 생겼는지 모른다 그래서 당신은 그것을 작동하는 방법을 모르겠어요 나는 기본적으로 그것을 밖으로 인쇄 할 인쇄 연구 방법을 사용하도록하겠습니다 당신이 볼 수 있듯이, 그것은, 그것은 연관 배열의 나에게 말한다 당신은, 키가, 저자,이 문자열을 가리키는이 저자는 비어, 그리고 안 다른 키, 몸, 다른 문자열에 포인트, 몸은 비워 둘 수 없습니다

나는 멋진, 좋아, 좋아입니다 그럼 난 배열을 통해 반복하고 모든 단일 메시지를 인쇄 할 수 있습니다 이 메시지의 무리와 함께 연관 배열처럼 기본적이다 내가 할거야 "를 오류의 경우,"입니다 나는 정렬되지 않은 목록을 만들거야, 나는 모든 오류를 반복하겠습니다 그리고 이것은, 지금은, 다시 제출하려고거야 그리고 이제 우리가 무엇을 얻을 보자

이제 우리는 오류의 좋은 목록을 가져, 이것은 여전히 ​​매우 추한이지만, 이것은 분명 좋은보고 포맷 할 수 있습니다 하지만 기본적인 아이디어는, 단지 몇 줄의 코드에 우리는 우리의 모델을 검증 할 수 있었다 특정 필드가 비어 있지했다 있는지 확인 뭔가 잘못된 경우 다음 오류 메시지가 어떤 종류의 반환 나는 다음 사용자에게 다시 제공 할 수있다 또한 유효성 검사를 사용자 정의 할 수 있습니다 그래서 당신은 실제로 오류 메시지가 가질 수 즉, 응용 프로그램 또는 그런 일에 더 구체적이다 모든 것은 일반적으로 사용자 정의 할 수 있습니다 불행하게도, 우리는 시간이 부족하고, 그래서 나는 여기에 라이브 코딩 세션을 차단해야 할거야 내가 당신을 위해 설명 할 다른 기능의 무리가 있습니다 이 예이다

예를 들어, 당신이 당신의 위치에 템플릿을 추가 할 수 있습니다, 그래서 아마 적용 할 HTML 코드의 일종이있다 귀하의 사이트에있는 모든 단일 페이지에 대신 붙여 넣기의 분명히 나쁜 관행이 될 것입니다 당신이 가지고있는 모든 단일 뷰 파일에서, 당신은 기본적으로 이러한 템플릿을 정의 할 수 있습니다, 다음 컨트롤러에 "좋아,이 템플릿을 사용하고 있습니다"라고 "내 모든 전망이 템플릿을 사용하게한다" 그리고 내가 원하는 마지막 것은뿐만 아니라 당신에게 보여주기 위해 크로스 사이트 스크립팅입니다 위해 우리가 시간이 없다고, 기본적으로 나는 너희들은 아마 CS50–에서 본 생각 나는 데이빗 말란 아마 당신은 일반적으로 주입 할 수있는 방법에 대해 이야기 생각 자바 스크립트 코드로 – 당신은이에 대해 얘기했다? 아마도? 아마? 그러나 많은 시간 당신은 악성 자바 스크립트 코드를 삽입 할 수 있습니다 누군가의 데이터베이스에, 그들이 제대로이 탈출하지 않는 경우, 그 때, 사용자에게 다시 그 데이터를 표시 할 때, 다음, 당신은 일하지 않으려는 임의의 자바 스크립트 코드의 일종을 실행할 수 있습니다 그리고 당신이 Kohana 내에서 그렇게 할 것입니다 방법을 설명하려고했다 정말 쉽게, 정말 사실입니다 말 그대로 이초에서 지금 그것을 할 수 있습니다

당신이 기본적으로이 일을 마무리하기 만하면됩니다 이 일에 HTML 엔티티를했다 그리고 제대로 모든 문자를 이스케이프 자동으로됩니다 당신이이 문제를 얻을하지 않습니다 있는지 확인하십시오 [학생] 당신은 잘못 첫 번째 테스트를 철자 [브랜든 리우] 아, 죄송합니다 좋아, 내가 오늘 당신과 함께 공유했다 전부입니다

이 슬라이드를 게시하려고하지만, 이들은 일반적으로 당신이 정말로 필요로한다 유일한 자원은 Kohana를 시작합니다 당신은 웹 사이트로 이동 할 수 있습니다 그들은 사용자 가이드를 가지고 있고, 그들은 또한 API 탐색기가 있습니다 우리는 그들이 당신을 위해이 모든 다른 기능과 도우미 기능을 탐색 할 수 있습니다 그들은 일반적으로 웹 사이트에 대한 충분한 정보를 가지고 그게 당신이 시작하는 데 사용하고 Kohana로 갈 수 있습니다

많은 수 없습니다 튜토리얼 내가 외부에서 Kohana에 대한 생각이 있습니다 그들이 여기 웹 사이트에있는, 그래서 이것은 아마 당신의 최선의 방법이다 하지만 당신은 웹 프레임 워크로 이동하려는 경우 당신은 새로운 언어를 데리러하고 싶지 않아요, 당신은, 상대적으로 가볍고 쉬운 학습 곡선을 가지고 뭔가를 원하는 나는 확실히 Kohana을 제안합니다 그건 아마위한 최상의 제공합니다 우리는 루비 온 레일즈를 사용한다면 재미있는 것은, 그러나,이다 우리가 무슨 짓을했는지 우리는 복제 된 수 3 분 이내에에서 아마 더 루비 온 레일즈 학습 농담,하지만 더 많은지지 않습니다 보다가 Kohana을 배울 걸릴 것이다

그것은 당신이 배우를 선택하려는 작업에 기본적으로 당신의 선택이다 하지만 당신이 신속하게 실행을 원한다면, Kohana은 확실히 아주 좋은 선택입니다 모든 마지막 질문에 우리가 종료하기 전에? 예 [학생] 우리가 어떻게 통합 할 것 당신이 지시 한 경우 CSS 프레임 워크에서 당신이 사용하는 것처럼? 우리는 CSS 프레임 워크 것을 통합 얼마나 문제는? 우리가 아마 할 것 우리가 아마 포함 할 것입니다 우리는 우리의 모든 CSS 파일을 덤프하는 새로운 폴더, 그리고 우리는 또한 새로운 템플릿을 추가 할 것입니다 템플릿에서 우리는 그 CSS 파일을 포함 것 그들은 모든 단일 페이지에서 참조하고 있는지 확인하기 위해, 다음 때 당신은 실제로 HTML을 작성, 당신은 적절한 클래스와 이것 저것을 추가 예를 들어, 폼 같은 것을 사용할 때 도우미 기능, 당신은 나중에 더 많은 매개 변수를 추가 할 수 있습니다 다양한 사물에 부착하고 싶은 클래스 지정 그래서 그들은 제대로 스타일을 수 있습니다, 그것은 기본적으로 당신이 갈 것입니다 방법입니다 다른 질문? 신난다

시간 내 주셔서 감사하고와 주셔서 감사합니다 나는 매우 다른 추가하지 않을했다 하지만 1 개 정말 빠른 것은 우리가 링크가없는 것입니다 양식 정말 바보 실제로보기, 블로그, 인덱스에 -의은을 추가하자 의 정말 신속하게 새로운 페이지로가는 링크를 추가 할 수 있도록, 우리는 새 게시물을 삽입 할 수있는 페이지 우리는이 작업을 수행 할 것입니다

어떤 좋은 것은 HTML 도우미 기능이 전체 그룹이있다 이미 실체를보고, 그래서 당신을 위해 다른 일을하는 여기에 기능을하지만, 그들은 또한라는 함수가 "앵커" 당신은 / 새 블로그를 입력 할 수있는 그리고 "새로운 블로그 포스트"라고 그리고, 당신을 위해 링크를 만들 것 그리고,이 할 정말 사소한 것, 그러나 이것은 좋은 당신이 다른 한 도메인에서 귀하의 웹 사이트를 이동한다고 가정하기 때문이다 그리고 당신은, 자신의 URL을 쓴 경우 당신은 모든 URL을 변경해야합니다 아니면 다른 하위 폴더 (1 개) 하위 폴더에서 이동 당신은 모든 URL을 직접 변경해야 할 것입니다, 그것은 재미 없다

당신은 바로 여기이 앵커를 사용할 수 있습니다 당신은 도메인 또는 하위 폴더 접두사를 변경할 수 있습니다 구성 파일에 한 번, 다음은 사방이 적용됩니다, 이것은 다시이며, 의 좋은 예는 코드를 건조, 자신을 반복하지 않는다 당신이 자신을 반복하고 어디든지 시도하고 구성 파일의 일종에서 추출 또는 다른 기능을하고 당신을 위해 처리합니다 그리고 내가 원하는 맨 마지막 것은 당신이 있었다 보여 우리는이 게시물에 돌아왔다 가정, 난 정말 긴 에세이를 구성했다, 하지만 내 저자를 포함하는 것을 잊었다 지금은 "포스트 제출"을 클릭하면 난 그냥 모든 것을 잃었다 아니! 정말 슬픈

그렇다면 그 처리합니까? 이것은 우리가하는 일입니다 우리가하는 일은 이러한 입력 텍스트 영역 기능을 위해 여기에있다, 우리는 두 번째 매개 변수, 즉 두번째 파라미터의 다음 값을 포함하면 필드가 처음으로 채워 될 무슨 일이 될 것입니다 우리가 할 수있는 것은, 우리의 블로그 컨트롤러에 우리는 또 다른 변수를 바인딩 할 수 있습니다 어쩌면 "값"을 호출합니다 그리고 문자 그대로, 후 배열에 전달합니다

즉, 유효성 검사가 실패하면 것을 의미한다 나에게 내가 마지막 요청에서 제출 한 후 배열을 전달, 그 방법은 내 마지막 제출의 값을 사용할 수 있습니다 필드를 다시 채워야합니다 지금은 값 저자처럼 뭔가를 할 수 내가 어떤 임의의 물건을 할 경우 지금 몸, 그리고 그런 식으로 값 그리고 거기 유지 "후 제출"을 클릭합니다 그러나 우리는 또 다른 문제로 실행하는 것입니다 내가 페이지에 처음으로 갈 경우 즉, 작동하지만, 이 충돌 것, 그리고 그건 난생 처음으로 인해 우리는이 게시물에 변수가 아직 정의되지 않은 페이지로 이동합니다 그것은 널 (null)입니다

그것은 존재하지 않습니다 이 키가 존재하는 경우 그리고 우리가 말하고 싶은 것은,이다 다음,이 배열의 값을 반환 키가 존재하지 않는 경우하지만, 다음 빈 문자열을 반환합니다 즉 우리가 여기에서 원하는 기능입니다 우리는 키가 배열에 접근하기 전에 존재하는지 확인하려면 다행히만큼, Kohana은 우리에게 그것을위한 도우미 기능을 제공합니다 그들은 기능의 전체 제품군을 가지고 이름 ARR 아래 배열 짧고 그들은 "수"라고 한 기능을 가지고 당신은, 배열에 전달할 수 있습니다 당신은 키의 이름으로 전달할 수 있습니다

그리고 기본적으로 무엇을 할 것 것은, 그것은 그 키를 얻기 위해 노력할 것입니다 하지만 키가 배열에 존재하지 않는 경우, 다음은 빈 반환, 또는 우리는 또한 기본을 지정할 수 있습니다, 나는 믿는다 어떤 좋은 것입니다 이제 우리는 다시 같은 일을 할 경우, 다음은 주위 처음 작동 이제 참조 다시, 우리는 어떤 임의의 물건을 입력하면 그리고 거기 유지, 시도 및 제출합니다 그리고 나는 방법도 정말 빨리 템플릿을 추가하는 방법을 보여줍니다 같아요 우리가 먼저 할 수있는 일은 우리가 "templatephp"라는 새로운보기를 추가 할 수있다 뷰 폴더 내에서, 그리고 내가 할거야 것은 "내용"나는라는 뭔가를 인쇄 할거야입니다 이는 내 주요 컨텐츠가 될 것입니다

그리고 어쩌면 맨 아래에 나는, 말, 추가거야 저작권 [들리지 학생 질문] [브랜든 리우] 어쩌면 이것은 내가 사용하려는 슈퍼 기본 템플릿입니다 나는 모든 한 페이지에 내 저작권이있는 폴더를 갖고 싶어, 지금은 내 컨트롤러 내에서 할거야 무엇을 "컨트롤러를 확장"대신 말의 지금 나는 "Controller_Template는 확장"라고 말할거야 지금은 대신 "는 응답 본문이보기 같다"며 나는 말할거야 "이 템플릿의 내용은 -" 내가 생각 – 내가 등호를 넣을까요? 잊었다 그래, 나는 그렇게 생각했다 그리고 지금은 내용 변수보기를 동일하게한다는 설정합니다

여기 동일한 기능을 수행 할 수 있습니다 내가 새로 고치면 그리고 지금, 당신은 지금이 저작권이 추가됩니다 볼 수 있습니다 그냥 어떤 임의의 게시물을 확인, 다음, 다시, 당신은 저작권이 페이지의 맨 아래에있는 것을 볼 수 있습니다 큰 그게 내가 너희들을 보여주고 싶었 전부입니다 [박수 갈채] 질문? [CS50

TV]

Google APIs from JS and PHP (GDL-IL)

이도 그린 : 또 다른 에피소드 그래서 안녕하세요, 환영 GDL-IL, GDL 이스라엘 오늘 우리는 구글 API에 대한 말을하는거야, 얼마나 쉬운이다 그것은에서 모두 그들과 함께 작업하고 소비하는 클라이언트와 서버

우리는 당신에게 작업의 힘을 보여주는 몇 가지 예를 구글 API를, 자바 스크립트, 물론,에 클라이언트 측 그리고 서버 측에서, 나는 몇 가지 간단한을 표시하도록 선택할 PHP의 예는 구글에 최근에 추가이기 때문에 앱 엔진 그래서 나는 사람들이 활용하는 방법을 참조 할 것 같아요 그래서 오늘 우리는 슬라이드가 없습니다 우리는 단지 약간의 코드를 가지고있다

그리고 우리가 할 수 있습니다, 그래서 내가 당신과 함께 내 화면을 공유 할 수 브라우저와 텍스트 편집기 사이를 빠르게 플립 그래서이 일을 할 수 있도록하고,의 우리가있어 첫 번째 방법을 살펴 보자 그것을 해결하기 위해 것 그래서 우리는 서버 측에서 시작합니다 그리고 기본적으로 당신이 갈 필요가, 서버 측에서 시작 과에 대한 귀하의 캡슐화를 가능하게하는 라이브러리를 다운로드 당신이 가진 모든 풍부한 기능의 사용자 구글 API를 그것은 하나 개의 라인, 그리고 당신이 여기에서 볼 수 있듯이, 당신은 단지 필요 이 one– 복사 그것은 curl–입니다 그리고 그것을 얻을

당신이 그것을 얻으면, 실제로는,이 링크를 클릭하면 바로 당신을 위해 그것을 다운로드합니다 당신은 물론, 압축을 풀고 그것을 타르, 그리고 당신은 꽤있다 당신의 힘을 보여주는 것 예제의 좋은 세트 당신이 광대에서 활용할 수있는 다양한 API를 다른 API를 엄청난 풍요 로움 구글 당신이 소비 할 수 있습니다 또 다른 중요한 점은 콘솔입니다 console–에 따라서 의 내가 시작 GDL 예를 들어 여기에 가자 그냥 콘솔로 시작하는 경우, 기본적으로 자신에게 OAuth 2

0 클라이언트 ID를 생성해야합니다 그리고 당신은 그것을 할 필요가 있기 때문에 구글 서비스와 I의 많은 당신이 Google 클라우드 엔드 포인트 서비스를 만들 것인지 생각 당신을 위해, 당신은 인증 된 것 있는지 확인하는 것이 좋습니다 그리고 할 수있는 가장 쉬운 방법은 바로 클릭 할, 여기 와서 의 OAuth 20 버튼, 제품 이름을 지정합니다 우리의 경우에는, [AUDIO OUT] 일 것이다

그리고 당신은 아마 여기 로고의 일종을 제공 할 것입니다, 멋진 하나, 및 페이지 URL [AUDIO OUT] 모든 프로젝트, 우리는 예를 클릭하고 있습니다 이 웹 응용 프로그램 또는이 될 것 경우는 선택할 수 당신이 원하는 것 기본적으로 서비스, 당신의 응용 프로그램은 전화, 또는 설치된 응용 프로그램을 확인합니다 그래서 Android 및 iOS 또는 Windows, Linux의 네이티브 앱의 경우 또는 Mac, 당신은 아마이 옵션을 선택하는 것이 좋습니다 우리의 옵션에서의 웹 응용 프로그램을 고수 할 수 있지만, 당신은 또한 서비스로 얻을 수 있다는 것을 기억하고십시오 다음 기본적으로 다른 어떤 정보를 필요로하지 않습니다 당신은 웹 응용 프로그램의 하나려고하는 경우 중요한 것은 당신의 엔드 포인트를 입력 할 필요가 있다는 것입니다 응용 프로그램

그리고 우리의 경우 단지의 유지하자, 일 [AUDIO OUT]을 만들려면 로컬 호스트와 그리고 당신은 그 과정의 리디렉션을해야합니다 구글은이 후 기본적으로 우리는 확인을받을 사용자 또는 전화 인증 주어진 당신 계속 토큰입니다 내 경우에는, 당신은 그것을 설정, 매우 신속하게 그것을 볼 수 있었다 localauth 및 oauthcallback합니다 물론, 당신은 이러한 설정을 편집하고 몇 가지를 추가 할 수 있습니다 다른 하나는 당신이 다른 환경에 URL을 리디렉션합니다 그래서 대부분의 경우에, 당신은 아마 QI를 넣고 싶어 환경, 어쩌면 스테이징 환경을 제공합니다

그리고 희망, 생산에, 당신은을 사용하지 않습니다 동일한 키는, 당신은 새로운 하나를 생성합니다 우리는이를 만든 후에, 우리는 서비스와 것입니다 그리고 서비스를 위해, 당신은 큰 풍요 로움의 여기 있습니다 다른 서비스 당신 수 [들리지] 그들 중 일부는 완전히 무료입니다 그들 중 일부는 사용 당 지불의 조금에 있습니다

그러나 바로 여기에 콘솔의 모든 매우 상세한입니다 그리고 당신은 매우 신속하게 얼마나 많은 볼 수 있었다 활성, 얼마나 많은 당신이 비활성있다 그리고 당신이 그것으로 재생하는 방법을 보여, 그래서 가정 해 봅시다하기 나는 Sky News에 일을 할 것인지 나는 달력 API를 잘 몰라요 그래서 나는 그것을 활성화됩니다 물론, 서비스 기간을 확인해야합니다

그리고 내가 그것을 수용하고 나면, 나는 지금 여기 활성 하나가 나는이 특정 서비스에서 실행할 수있는 서비스를 제공합니다 지금, 나는 시작하고 나는이와 함께 무엇을 할 수 있는지보고 싶어 서비스는 여기에 좋은 물음표가있다 내가 클릭하고 그것을 밖으로 시도 할 것이다 경우, 즉시 내가되는거야 리디렉션, 나는 시작이 API가 무엇인지 볼 수 있습니다 나에게 노출 그래서이 부분은 발견의 기본적 우리가이 메커니즘 마지막 I 나의 이야기 중에 기억한다면 / O, 우리는 이야기 클라우드 엔드 포인트에 대한 당신은이 시스템을 활용할 수있는 방법 자신의 API를 만들고이 발견을 즐기고 메커니즘은 작업의 생산성을합니다

우리 모두가이 작업을 수행 한 후 그래서, 기본적으로 우리는 몇 가지 다른이 우리가 실행할 수있는 것들 여기에 당신은 당신이 확인시키는 것 아주 좋은 페이지가있는 서비스는 당신이 승인했다 당신이 개발 작업을하고 나면, 당신은 할 수 있습니다 당신이 할 수 있도록 일부 서비스에 대한 액세스를 취소 테스트 또 다시 인증 단계 및 확인 당신이 바로 그 일을하고 있는지 확인합니다 당신은 특정 API, 하나의 좋은 방법을 함께 재생하려면 심지어 한 줄의 코딩없이 웹에서 API와 함께 작동 이다는 developersgoogle

com로 이동 이동 여기 API 탐색기에 그리고 우리의 경우,이 때문에 유튜브 데이터 API를 선택 I는 제조 예이다 그리고 여기 당신은 that– 볼 수 있습니다 이 전 유튜브에서의 아이디어를 얻을하려는 가정 해 봅시다 비디오 당 니펫을 그 때 나는 최대 결과 이따가 할 나는 잘 몰라요 9 내가 놓을 게 쿼리, 그것은 수 스키, 그것은 스노우 보드 수 있습니다

그리고 그것을 실행하고있어 일단, 나는 여기에 반응을 얻고있다 나는 기본적으로 다음을 그냥 다른 재생할 수 있습니다 거기에 환경을 제공합니다 그러나 여기 당신은 그래서, 내가 200을 가지고 말할 수 모든 것이 멋지다 그리고 여기 나는 기본적으로 멋진 JSON 객체를 얻고있다 모든 결과 집합을 기술 그리고 당신은 내가 비디오를 얻고 있음을 볼 수 있었다

나는 동영상을 썸네일을 받고 있어요, 아이디, 모든 나는 기본적으로 요구 된 것이다 이제, 우리는이 예제는 PHP에, PHP에 모습을 보면, 그것은 많은 의미에서 매우 유사합니다 그래서 우리가 여기 온거야, 그리고 약간 붐비는 될 수 있지만 당신은 여기에서 볼 수 있기를 바랍니다 기본적으로 우리는 우리가를 조회시키는 것 간단한 페이지를 유튜브 API 우리는 아마 다음 사용자로부터 검색어를 얻고 싶어 결과를 제한합니다

그리고 그 검색 조치를 바닥에 그것 뿐이다 내가 여기에 가져 오는하고있어,이 라이브러리 인 두 개의 파일입니다 실제로 노출 및 YouTube 서비스를 캡슐화하고 있습니다 그래서 구글 클라이언트가 처음이다, 그래서 그냥 내가 모든 것을 할 것이다 기본 기능하고 유튜브 자체 내가 그 일을 해요 일단, 내가 여기있다, 물론, 개발자 키를 누릅니다 그리고 지금 난 그냥 구글 클라이언트의 생성자를 호출하고있어 그것으로 작업

그래서 개발자 키를 설정하고있어, 나는 이것으로 전화 드렸습니다 유튜브 서비스에 대한 클라이언트 내가 이렇게하면 나는 탐색기에서 당신을 보여 주었다 똑같이 API는, 기본적으로 내가 YouTube 검색 searchlist를 호출하고 있습니다 그리고 당신은 그것의 것으로, 탐색기 API 여기에서 볼 수 있습니다 정확히 같은 엔드 포인트 그래서이 사람은 바로 이와 같은 것이다 그리고 우리가 예에에 무슨 짓을했는지에 다시 매우 유사 API를 탐색기, 내가 갈거야, 그리고 난에 집중하고있어 스 니펫의 생각

그래서, 쿼리 및 물론, 최대 결과를 전달하려는 이 내 페이로드입니다 그리고 지금 내가 뭘 모든이 좋은 루프에 가서하고있다 확인 결과는 기본적으로 분리 set–하는 것을 세 양동이에 하나는 비디오와 채널 다음 재생 목록입니다 우리는 다시 가져올 수 있습니다 그리고 내 몸에, 난 그냥 난 있는지 확인합니다 이 목록을 구성 그래서 UL과 LY 태그 단지에를 사용하고 있습니다 여기에서 그것을 구성

아주 간단합니다 난 그냥 여기를 내장하고 그게 다에요 내 지역 환경 작업을 어떻게의를 살펴 보자 그럼 데브 도구를 지금 종료 할 수 있습니다 우리는 나중에 살펴 보겠습니다

내가 쓰는 물건 찾고 있어요 그래서 경우 모르겠어요 나는 10 개 개의 결과로 제한하고있다 내가 검색을 클릭있을 때, 기본적으로는거야 유튜브, 반환 당신이 여기에서 볼 수 있듯이, 기본적으로 내가 방금 추가 이미지뿐만 아니라 앞의 예와는 달리 그래서, 우리는 더 받고있어 전체적인 검색 결과는, 만약에 당신, 그것은 좀 더 그래서 정보

당신은 API 탐색기에 여기 전에 본 정확히처럼, 난 다만 결과 집합으로부터 단지 요소를 페치 페이지 자체에 그 (것)들을 제시 모두가 알다시피 지금, 우리는 클라이언트 라이브러리의 무리가 그것은 실제로 당신이 구글 API를 활용시키는 있습니다 웹에, 당신은 자바 스크립트 라이브러리를 사용할 수 있습니다, 나는거야 얼마나 쉬운 분의 예를 보여 그것을 부드럽게 함께 작업하는 것입니다 하지만 서버 측에서 자바 스크립트로 작업하는 경우, 우리는 Nodejs를위한 좋은 라이브러리를, 그래서 주시기 바랍니다 그것을 확인합니다

그런데, 모든 링크는 여기에 있습니다 그래서 당신은 pictures-appappspotcom에 갈거야 경우, 당신은에서있는 슬라이드를 볼 수 있습니다 슬라이드 25도 이전의 I / O의 이야기하지만, 같은 당신이 볼 수 있습니다 여기에, 모든 다른 라이브러리에 대한 모든 링크 및 당신이 활용할 수있는 언어 그래서 네이티브 클라이언트를 구축하는 사람을위한, 모두 iOS 및 Android, 우리는 좋은 도서관이있다

그리고 물론, 서버 측에서, 언어의 무리가 있습니다 그리고 실제로 우리는 심지어 NET 및 GWT 및 많은 다른 사람을 위해있다 그래서 그를 닫하자 우리가를 실행할 수있는 방법을 참조 입증 따라서이 특정 예에서, 코드에서의 첫번째보기는하자 그리고 우리는 라이브 예를 살펴 보겠습니다

나는 나 자신을 인증하고 일부 싶어 G +의 정보 우리의 경우, 아마도 그것은 이미지와 이메일 될 것입니다 당신이 상상할 수있는, 당신은 실행하고 더 많이 할 수 당신이 한 번 가지 토큰, 사용자의 핸들을 얻는다 이것은 매우 간단한 예제이며, 항상 자바 스크립트에서와 같이, 이제 끝으로 점프 할 수 있습니다 그리고 무엇보다도, 우리는 구글 클라이언트 라이브러리를 호출하고, 자바 스크립트 클라이언트 라이브러리

그리고 우리는 여기에 콜백을받을거야 그래서 부하에, 우리는 기본적으로 콜백을 처리하고 볼 수 있습니다 우리는 무엇을하고 있습니다 그래서 우리가 설정하는 물론, 클라이언트 ID 및 일부 API 키 및 범위 등의 상용구 데이터입니다 그리고 우리는 여기에 올 때 클라이언트 부하를 처리 할 수 ​​있습니다 우리는 그 API 키를 설정하고 있으며, 우리는 단지 전화를 걸 즉시 검사 인증, 그래서 우리는 그것을했다 설정된 타임 아웃

우리가 그 일을 마친 후 우리는 단지 GAPI–거야 구글 API 그리고에이 엔드 포인트 인증 우리는 권한을 부여 할 권한 부여는 클라이언트의 ID, 범위와 함께 할 것입니다 그리고 물론, 우리는 즉시 그것을 할 싶어 그리고 우리는 단지를에 또 다른 콜백을 제공하고 있습니다 우리가 얻고있는 결과 집합을 처리합니다

우리의 경우,이 하나입니다 우리가 인증을 받고있을 때, 우리는하고 싶은 몇 가지 모든 것을 확인하고 경우에 따라서 첫째, 우리는 어떤 오류가없는, 그냥 여기 가서 이렇게 인증 단추를 숨길 수 있습니다 사용자가 혼동되지 않습니다 그리고 실제 경우에, 당신은이 단계에에서 할 수 있습니다 당신이 확인하고 당신이 보여주는하고 있는지 확인 그 또는 그녀가 로그인 한 사용자 그것은 세포 또는의 좋은 이미지를 수 있습니다 다른 좋은 대담한 방법은 그들이 지금에 로그인되어 있는지 보여 및 인증

그리고 지금 우리는 API 호출을하고 있습니다 물론, 반대 방향에, 우리는 확인하고 싶어 당신이 본 것 같은 버튼이 표시되어 있는지 확인 여기에, 그래서 사람들은 자신과 로그 권한을 부여 할 수 이상에서 우리의 응용 프로그램에 로그인합니다 우리는 인증을 처리하고 나면, 우리는 원하는 기본적으로 API 호출을 확인합니다 우리는 G + API에 대한 것입니다 우리는 버전을 제어하고 있습니다

그래서 여기에 우리의 경우, 그것은 D1 것입니다 그리고 기본적으로 제가 사람들로부터 가져 싶은 날입니다 그리고 나 자신의 이미지를 촬영하고 그냥을 착용하고있어 페이지 자체 이제 라이브 예에서 작동하고 어떻게하는지 보자 당신이 여기에서 볼 수 있듯이 그래서, 그래서 내가 인증되는거야 즉시 권한 대화에 대한 요청을 진열

이 경우, 내가 크롬을 사용하는 것을 볼 수 있었다 확장 책 예, 나는 그것이 편리해야해서 그리고 잘하면 가까운 장래에, 당신은 볼 수 있습니다 일부는 크롬 확장과 관련된 예를 살고 있습니다 하지만 액세스를 허용하고있어, 다음, 기본적으로 내가 봤는데 이 페이지로 다시 리디렉션 당신이 볼 수 있듯이, 나는 지금 여기 내 사진과 내 타이틀을 가지고있다 그래서 이것은 당신에게 힘을 보여주는 것 한 예이다 [알아들을 수 없는]

그리고 지금의 또 다른 간단한 예를 들어 보자 그게 당신을 보여주는 것 그래서 여기에 기본적으로 또 다른 페이지를이 [들리지] 또는 구글 API를 얻고있는 샘플 PHP 클라이언트 예 그리고 여기에 기본적으로 우리는 정확히 동일한 작업을 수행, 대신거야 자바 스크립트, 우리는 PHP를 활용할 수 있습니다 그래서 예를 들어, 사용자 정보의 디렉토리로 갈거야 내가 로그 아웃 후, 세션 전에, 물론, 내가 원하는 지금 자신을 인증합니다

그래서 다시 나는이 좋은 인증 대화 상자를 얻을 것이다 그리고 나는 그것을하고있어, 당신은 여기에서 볼 수 있듯이 그것은 년 후 히브리어,이 경우 다시는 내 이메일과 사진을 얻고있다 코드는 어떻게 같을 것이다? 이제 진짜 빨리 뛰어하자의 제거하자 제이 하나 그래, 그래서 여기, 그래 그래서 다시 내가 구글의 OAuth 2

0 서비스를 호출하고 있습니다 그리고 이후 우리는 구글 클라이언트를 설정하고 그것을를 제공하고 있습니다 IDs–의 길, 클라이언트 ID, 개발자가 무리 키와 다른 모든 당신의 API 여기에 볼 수 있습니다 액세스 탭을 클릭합니다 당신이 그것을 클릭합니다 그래서 만약, 기본적으로 모든 관련 클라이언트처럼, 복사 / 붙여 넣기하는 데 필요한 정보 ID, 클라이언트의 비밀, 그리고 API 키는 모두 여기에 있습니다 그래서 그냥 API의 콘솔을 기억 이것은 위치입니다 그래서 당신이하고있어 일단, 기본적으로 우리는 호출하고 우리의 고객과의 OAuth 서비스를 제공합니다

그리고 우리는 코드를 누르면되고, 우리는 토큰을 가져 싶다 토큰은 우리가 그래서 우리는거야 우리와 함께 수행 할 수 있습니다 뭔가 우리가해야 할 경우 또 다시 확인 할 수 자체 서비스 그리고이 경우 이후 이미 시작 부분에 우리가 있다면 우리는 단지을 갈 필요가 여기에 토큰을 받고 리디렉션, 우리는 모든 좋은입니다 우리는 토큰을 설정하지 않으면 확인 만드는 경우 그 사용자는 물론, 우리가있어, 로그 아웃을 클릭한다 토큰을 취소 그리고 여기에 우리는 단지 클라이언트를 호출하고, 우리가 원하는 토큰을 가져옵니다

우리는 그것을 받고있어 이는 참으로 반환 그래서 후 우리는 클라이언트에서 토큰을 가지고 있기 때문에, 우리는 기본적으로있어 의 OAuth 서비스에 가고 그리고 사용자 정보 객체와 함께, 우리는을 얻으려면 정보 내 경우에서 보았 듯이 그리고, 그것은 PHP의 경우 전 -, 그것은이었다 이메일과 사진, 프로필 사진 그리고 우리가이했던 것은 우리가 페이지에 넣어 그냥 우리는 그것을 볼 수있을 것입니다 여기, 마지막으로, 우리는 물론,에 저장하려는 우리의 SessionToken 또는 편리하게 찾을 수있는 다른 장소 그리고 안전하게 응용 프로그램, 토큰 자체에 대한, 당신은 할 수 있도록 를 활용하고 앱에서 나중에 사용할 수 있습니다 그리고 이것은 우리가 여기있는 모든 것입니다 그래서 우리는 나중에이 비트 HTML은 있는지 확인하는 것입니다 우리는에 연결, 또는 기록의 두 사례를 가지고, 그 아웃 기록

이 그래서 그런 것 같아요, 아주 짧은이었다 구글 API에 대한 소개 다음 주 또는 가까운 장래에, 난 당신을 보여주기 위해 노력할 것이다 경쟁 할 때 API를 그 유형을 활용할 수있는 방법 당신의 서비스에 대한 그리고 구글은 기본적으로 엔드 포인트 복용 할 수와의 우리가 노출 내부적으로 사용하고 그 API를 개발자에게 그들 당신이 구글 앱 엔진을 활용하고을 만들려면 이렇게 그 위에 강력한 확장 API, 당신은 사용 할 수 있습니다 Google 클라우드 엔드 포인트 그리고 당신은 이익을 무료 모든 위대한에 대한 있어요 검색 체계의 기능의 API 탐색기, 하고있는 라이브러리의 모든 풍요 로움 당신을위한 모든 준비

그렇지 않으면 우리는에, 잘하면 다음 주에 대해 말하고 있습니다 가까운 미래 그리고 지금 질문에 대한 좋은 시간 사람이있는 경우 우리가 가지고 주시기 바랍니다 합류했다 누군가가 질문이있는 경우 OK, 그래서 나중에, 단지 느낌 plusgooglecom/plusgreenido– 날에 도달 무료 한 단어

그리고 다음 주까지, 좋은 시간과 바이 바이 있습니다

Should I Learn PHP or JavaScript First?

내가 먼저 PHP 또는 자바 스크립트를 배워야한다? 당신이 당신의 작업에 지금 PHP를 배울 필요가없는 한,이 마지막 일 중 하나 여야합니다 당신은 배운다 당신이해야하지 않는 한 그것을 배울하지 마십시오

나는 내가 지금 배워야한다 무엇을 배우려고 노력하고있다 자바 스크립트는 건물 애플리케이션에서의 사용이 많은 클라이언트 측 언어입니다 PHP는 서버입니다 당신이 데이터베이스에 연결해야 할 때 정말에만 사용됩니다 측 언어 나는 자바 스크립트가 더 많은 일자리를 생성하지만, PHP 더 지불 들었어요 자바 스크립트는 웹 브라우저에 주로 사용보다 용서 프로그래밍 언어입니다

더 사람들은 자바 스크립트와 jQuery를 함께 작동, 그래서 더 큰 공급은 임금에게 학위를 감소시킨다 어느 배우기 어렵다? 나도 배우고 열심히 없다 자바 스크립트를 공부한다면, 당신도, jQuery를 통해 가야한다 나는 단지 하나 개의 프로그래밍 언어를 배우고 싶어요 당신은 더 이상 기본 또는 포트란에서 쓰는 사람을 아십니까? 그냥 PHP를 배울 경우에도거야 아마 몇 년 동안 새로운 언어를 배울 수있다

PHP는 지금 큰 수요가있다 심지어 페이스 북과 워드 프레스를 호스트하는 데 사용됩니다 이 서버를 호스팅하는 모든 종류의에서 실행하기 때문에 PHP는 거의 모든 곳에서 사용된다 나는 PHP는 더 많은 자바 스크립트에 비해 서버에서 수행 많은 작업을 수행 할 수 있습니다 들었다 먼저 자바 스크립트를 배운다면, 당신은 자바 스크립트 애플리케이션 동안 설계 작업을 얻을 수 있습니다 당신은 전사적, 서버 기반 애플 리케이션을위한 PHP에 대한 학습을 ​​계속

그건 아마 내 제한을 염두에 과부하 것이다 이들의 구문은 비슷합니다 그러나 그들은 완전히 다른 언어입니다 사실, 작업 시장이있다 PHP는 백 엔드 웹 개발자를위한 것입니다있는 경우, 당신이 아마 또한, SQL을 학습해야한다

너무 많은 TLA TLA? 세 개의 문자 약어

Should I Learn Node.js or PHP?

나는 Nodejs를 또는 PHP 배워야한다? 당신이 2010 년에 다시 같은 질문을 경우에, 나는 PHP 말했다 것이다

Nodejs를 너무 새로웠다 심각한 경쟁자가 될 수 있습니다 그 다음이었다 지금은 어때? 월마트와 페이팔은 웹 포털,하지 PHP를위한 Nodejs를 채택하고 있습니다

난 아무것도의 월마트의 도입은 IT의 측면에서 문제가해야 확실하지 않다 Nodejs를 월마트에 대한 블랙 프라이데이 2013 억 개 고객을 처리 이상 가지 않았다 1 % 활용 Nodejs를 초당 많은 요청으로 두 번 처리하고 빠른 응답을 가지고 각 요청하고, 최근 성능에 시간이 채택이 증가 할 것이다

나는 넷플릭스의 구현 nodeJS의 채택의 측면에서 더 큰 거래라고 생각합니다 그러나 자바 기반으로 당신이 만드는 커피를 제외하고 자바에서 모든 것을 할 수 농담이있다 Node

js를 당신은 오랜 기간 동안 열린 많은 포트를 가진 것으로, 긴 폴링을 할 경우 훨씬 더 낫다 시간 그러나 모든 응용 프로그램이 필요합니다 알아 채팅 패널과 소셜 미디어 기능을위한 Nodejs를 사용하지만, 렌더링에 PHP를 사용 웹 페이지

PHP는 더 호스팅 옵션이 있습니다 Nodejs를 웹 페이지에 대한 빠른로드 시간이 있습니다 그것은 그것을 실행하는 등 많은 관리자가 없습니다 그것은 매우 빠르게 변경할 수 있습니다

그리고 Nodejs를 비 차단, 그래서 당신은 실수하지 않습니다 채택 비율을 밀어 무언가를 구입하는 과정에서 고객을 놓습니다 Nodejs를 PHP를 대체 할 예정? PHP는 여전히 콘텐츠 관리 시스템의 왕입니다 그리고 Node

js를 대규모 볼륨을 처리 할 수있는 반면 각 요청을 많이 필요로하는 경우 주식 시세 표시기와 같은 요청, 그것은 잘 작동하지 않습니다 계산 공학 응용 데이터 교환과 같이 수행 될 수있다 Nodejs를 미래의 물결처럼 소리가 난다 많은 응용 프로그램의 경우, 예 하지만 PHP는 여전히 틈새 시장이있다

내가 따라 잡을 수 없을거야 누가 이미 PHP에서 훈련을받은 사람들을 위해 떠날 것이다 나는 Nodejs에 앞서 싶어

Should I Learn Python or Ruby or PHP?

파이썬이나 루비 또는 PHP를 배워야한다? 프로그래머가 학생보다 그 질문을 토론에 더 많은 에너지를 넣어 모든 스페인어를했다 프랑스어 대 독일어 대 프랑스는 낭만적 인 소리를 만드는 동안 스페인어, 더 유용하다

세 언어는 객체 지향 및 동적입니다 주의해야 할 점은 PHP 아니라 파이썬과 루비는 같은 만들어진 반면 된 객체는, 시간이 지남에 따라 지향 는 IEEE 조사는 파이썬이 11 %에서 가장 인기있는 언어는 것을 발견했다 루비는 불과 4 % 동안 PHP는 기본적으로 7 %와 함께 묶여 그리고 기타는 29 %를 얻고 지금까지 가장 큰

좋아, 그럼 폴링 프로는 질문에 대답하지 않습니다 모든 사람은 자신이 좋아하는 프로그래밍 언어를 가지고 있으며, 그들은 모두 그것을 옹호 수 있습니다 이 실리콘 밸리의 인기 때문에 루비는 큰 이름이다 프로그래머가 작성하는 내장 도구를 많이 사용할 수 있기 때문에 루비는 신생 기업들에게 인기가 봐 – 한 – 같은 애플 리케이션 그들은 빠른 응용 프로그램을 함께 때리고 수 있습니다

루비는 PHP보다 배우기 간단입니다 그래,하지만 PHP는 서버 측에서 더 나은 않습니다 그리고 PHP는 배포가 간단합니다 파이썬은 현대 시대를 따라 가지 역을 설치하여야했다 반면 아직 지원 리소스의 많은 고체 프로그래밍 언어입니다

루비 프레임 워크를 필요 모두에서 작동합니다; 당신은 당신의 서버에서 코드를 실행하고 작동하는 응용 프로그램을 사용할 수 없습니다 그들이 Ruby on Rails에 대해 계속 얘기하는 이유입니다 레일이를하는 동안 루비 코드입니다 뼈대 파이썬은 보통 루비보다 더 빠르게 작동합니다 그리고 파이썬은 오는 장고 프레임 워크를 가지고 좋은 툴킷

파이썬과 루비 나는 더 나은 PHP보다 설계 들었습니다 어느 쪽이 더 나은 무엇입니까? 하지만 PHP는 쉽게 서버 측 웹 페이지를 만들 수 있습니다 PHP는 아파치에의 종속성 문제를 많이 이동합니다 PHP는 워드 프레스와 드루팔로 사용하기 더 성숙한 CMS 프레임 워크를 가지고 있습니다 루비와 파이썬 내가 들어는 비슷하지만, 아무도 나에게 하나를 선택하는 좋은 이유를 할 수 없다 다른 이상

내가 아는 건 너무 투박 때문에 나는, PHP와 함께 작동하지 않는다는 것입니다 그냥 언어를 선택하고 이동합니다 확율은 어쨌든 자바 스크립트 또는 C # NET을 배워야 할 것입니다

Why is PHP More Popular than Python?

왜 PHP는 파이썬보다 더 인기? 나는 PHP를 사용하는 것이 더 재미 팬 소년 열을 읽었습니다 파이썬은 틀림없이 더 나은 디자인과 더 우아하다

파이썬이 계획되었다 반면, PHP는, 언어로, 일어났다 파이썬은 바로 문법과 같은 언어 물건을 많이 수행하지만, 문제는 실행하고있다 코드 프로젝트 작업에 PHP보다 파이썬에서 좋은 코드를 작성하는 것이 더 쉽습니다 PHP의 자유와 같은 어떤 사람들 파이썬은 PHP보다 훨씬 더 나은 프레임 워크를 가지고있다

파이썬은 대부분 장고를 사용합니다 즉 평범한 프레임 워크와 형편없는 영화입니다 PHP는 심포니에 젠드에 코드 이그나이터에서 프레임 워크를 많이 가지고 있습니다 선택 다른 프레임 워크를 많이 갖는 20 개 개의 표준을하는 것과 같다 – 더 인 하지 않는 것이 좋습니다 당신은 그들 모두를 충족하거나 충족하기 위해 프로그래머를 찾는 방법을 파악해야 할 때 하나는 당신이 사용하고 싶습니다

PHP는 아마도 인터넷의 공통어이다 나는이 HTML 또는 HTML5와 CSS 생각했다 나는 워드 프레스 플러그인의 언어 알고있다 가장 큰 오픈 소스 프로젝트의 대부분은 PHP를 사용합니다 PHP는 웹 호스팅 저렴한 비용으로 옵션입니다

만 낮은 성능의 웹 호스팅 파이썬 서버는 한 달에 싼 10 달러 없습니다 옵션을 호스팅,하지만 당신은 당신의 투자에 대한 더 많은 기능을 얻을 것이다 – 행복한 사용자 말한다 파이썬은 코드를 나타 내기 위해 공백을 사용합니다 즉 말 그대로 표면적 인 문제입니다 파이썬은 강력한 수 있도록 설계되었다

PHP는 강력한 될 수 있습니다 나는 HTML 기반-애플리케이션하지만 모든 것을, PHP는 사람들을 감싸는 API 있음을 부여합니다 고객에게 배달하기 위해 애플 리케이션 PHP는 자바와 자바 스크립트의 보안 구멍이 없습니다 즉 유닉스 아무도 바이러스를 대상으로하지 않기 때문에 윈도우보다 낫다 말처럼; 그것 악용 될 수 있으며, 단지 가장 등의 수신 측이 될 수있는 충분히 큰 대상 아니다 노력 PHP는 배울 적은 노력이다

그리고 당신의 이력서에 PHP 언어를 두는 것은 당신이 HTML을 알고 말 위의 단계입니다 -하지 하드 것은 달성했다 왜 PHP를 통해 파이썬을 좋아합니까? PHP는 적어도위한 웹 개발의 의지가있다 IT 업계에서 영원히 십 년 파이썬은 사용자의 입력을 모집, 사전에 언어 발달을 계획이다 그것은 더 질서이다 PHP보다 나는 누구의 새로운 릴리스 종종 코드를 부러 루비 온 레일즈,보다 더 당신을 부여 할 언어의 이전 버전에 작성합니다

아니면 지속적으로 JVM 및 코드에 대한 보안 취약점을 해결하기 위해 노력하는 자바, 그 자체 그러나 자바는 웹 디자인의 표준이되어왔다 즉 HTML5 당 자바 스크립트,하지만 당신은 여전히 ​​웹 애플 리케이션을위한 PHP 나 Python을 사용할 수 있습니다 파이썬의 장점은 큰 표준화 된 코드 라이브러리입니다 PHP는 더 숙박을 제공합니다

즉, 플러그 및 코드 모듈을 재생하려는 경우 번거 로움입니다 그리고 파이썬 핸들 예외 더 나은 왜 PHP는 더 인기? 한 마디 – 관성 그리고 간단하게 배울 수 있습니다 즉 두 개 이상의 단어, 하나 개 이상의 문장입니다

웹에플리케이션 만들기 – JS, PHP 프로그래밍 9-1 : JavaScript 로그인앱

이번 시간에는 로그인 기능을 구현하는 방법에 대해서 살펴보겠는데요 지금까지 우리가 배운 것을 중간 정리하는 단계라고 보시면 되겠습니다

특히나 조건문이 중요하게 사용이 될 거에요 우선 Javascript부터 살펴볼 건데요 여러분들 좀 검은색과 흰색이 왔다 갔다 하면서 눈이 아프실 거 같아서 제가 색깔을 좀 밝은 색깔로 바꿔봤습니다 잘 찾아보시면 색깔 이런 테마 같은걸 바꿀 수 있는 기능이 있어요 시작해보죠

저는 7php라는 파일을 만들었고요 여기에서는 Javascript를 이용해서만 로그인을 구현해 볼 겁니다 여기서 우리가 이 수업을 진행하기 전에 여러분들이 먼저 좀 알아두셔야 할 기능이 있는데 프롬프트라는 기능입니다 프롬프트

P R O M P T 여기에다가 비밀번호라고 이렇게 적어 주고요 우리의 페이지를 열어보면 이런 화면이 뜹니다 그리고 비밀번호를 물어봐요 거기에다가 111111이라고 입력하고 확인을 누르면 됩니다

여기보시면 여기 있는 이 프롬프트라고 하는 이 명령이 방금 보셨던 그 창을 띄운거에요 거기에 비밀번호라고 이렇게 적어 주시면 이 명령어로 인해서 이렇게 생긴 창이 뜨면서 여기에 있는 비밀번호라고 하는 텍스트가 여기에 들어가게 됩니다

그러면 사용자가 여기에다가 비밀번호를 입력할 수 있겠죠? 예를 들면 111111 그리고 확인을 누르면 되는데 사용자가 입력한 정보를 우리가 받기 위한 방법은 여기에다가 패스워드라는 변수를 이렇게 주면 됩니다 한번 해볼게요 이렇게 경고창이 뜨면 어떻게 된 거냐 하면 Javascript 이 부분에서 여기가 먼저 실행이 된 거에요 그래서 비밀번호를 이렇게 물어보는 거죠 그리고 여기에다가 뭔가를 입력하면 입력하고 확인 버튼을 누르면 그러면 여기에 있는 이 부분에 값이 바로 여기에 입력한 값이 됩니다

그러면 자연스럽게 그 값이 패스워드로 들어가서 패스워드의 값은 여기에 입력한 값과 패스워드의 값이 같은 값이 된다는 거죠 그래서 한번 확인해볼까요? 여기서 제가 documentwrite(password);라고 이렇게 하고 실행을 시켜보겠습니다 F5 그리고 1111 확인 버튼을 누르면 보시는 것처럼 사용자가 입력한 정보를 이 Javascript가 알아낼 수 있게 되는 거예요 바로 이런 작업들은 HTML, CSS는 할 수 없는 일입니다

즉 사용자의 생각을 받아내서 어떤 일을 처리하는 것, 그것을 Javascript나 php는 할 수 있지만 HTML이나 CSS는 할 수 없는 일이에요 그러면 그렇게 받은 정보를 가지고 우리 한번 로그인 기능을 구현해보죠 물론 이렇게 로그인을 구현하면 절대 안 됩니다 이거 아주 허접한 방법이에요 그런데 이건 이걸로도 우리 같은 시사점이 많죠

만약 패스워드가 1111과 같다면, 그러면 어떻게 되는 거예요? 정상적인 접근이 되는 거죠? 안녕하세요 주인님 만약에 패스워드가 같지 않다면 뉘신지? 이렇게 그리고 실행을 한번해보죠 비밀번호를 입력하라고 해요, 그러면 요거는 어디까지 온 거냐 하면 여기까지 온 거죠? 그리고 여기에 비밀번호를 입력하면 그거는 패스워드로 들어가게 됩니다

1111이라고 하고 확인을 누르면 여기의 값은 이제 1111이 되면서 얘와 비교를 하면 이거 전체는 true가 되죠? 그러면 자연스럽게 if 안에 있는 이 부분이 실행이 되겠죠 한번 해볼게요 확인 안녕하세요 주인님이 뜹니다

그 다음에 F5를 누르고 1을 하나만 넣어볼게요 그리고 확인 누르면 뉘신지가 뜨는 거죠 이로써 우리에게 있어서 이 웹페이지 전체가 말하자면 확정된 상태가 되요 확정된 상태 우리는 이 웹페이지를 더 이상 수정할 필요가 없어집니다

대신에 사용자가 여기에 어떠한 값을 입력했느냐에 따라서 이 if문에 있는 이 부분의 동작 방법이 달라지게 되는 것이죠 즉, 이 프로그램에서 변할 수 있는 부분을 완전히 프로그램 바깥쪽에 사용자가 조작하는 쪽으로 몰아내서 이제 우리가 일반적으로 얘기하는 제대로 된 프로그램 같은 모양이 나오게 된 것이죠 어때요? 그렇게 멋진 것은 아니지만 어쨌든 무언가 프로그램 같은 걸 만든 것 같지 않으신가요? 예 여기까지 하고요 다음 영상에서는 php를 이용해서 로그인을 하는 방법을 우리 살펴보죠