Codeigniter 3 Tutorial – AJAX Drag and Drop files upload with Codeigniter and DropzoneJS

안녕하세요 코디네이터 비디오 튜토리얼을 환영합니다

오늘 우리는 codeigniter와 함께 멀티 파일을 동 기적으로 업로드하는 방법에 대해 토론하고 Dropzone Js DropzoneJs는 드래그 앤 드롭 파일을 제공하는 오픈 소스 라이브러리입니다 이미지 미리보기로 업로드합니다 가볍고 다른 어떤 것에도 의존하지 않습니다 라이브러리 (jQuery와 같은) 및 고도로 사용자 정의 할 수 있습니다

DropzoneJs에 대한 자세한 내용은 여기 dropzonjs 웹 사이트에서 볼 수 있습니다 그래서, 여기에서 우리는 건설 할 것입니다, 여기에서 우리는 할 수 있습니다 이 영역을 클릭하고 파일을 선택하거나 여러 파일을 선택하면 파일을 열 때 파일이 비동기 적으로 업로드 될 수 있습니다 우리는 여러 이미지를 선택하고 드래그 앤 드롭 할 수 있습니다 여기뿐만 아니라

또한 우리는 서버에 이미 저장된 파일을 보여줄 수 있습니다 마지막으로 삭제할 수 있습니다 모든 파일은 링크를 제거합니다 좋아, 충분히 이야기하자 여기에는 기본 설정과 함께 codeigniter가 있습니다

그냥 url과 form helper를 자동로드합니다 내가 dropzone 및 jquery를 포함하는 공급 업체 폴더를 만들 수 있습니다 공식 웹 사이트에서 dropzone 및 jquery를 가져 오거나 얻을 수 있습니다 이 비디오 설명에서 제공하는 링크의 codeigniter 기본 설정 새 컨트롤러를 만들고 이미지 컨트롤러로 저장하고 인덱스 메서드를 만듭니다

여기서 indexphp라는 이름의 뷰를로드합니다 views 폴더에 새로운 indexphp 파일을 생성하고 기본 폴더를 생성 해 봅시다 HTML 마크 업, dropzone 및 jquery 라이브러리로드

여기에 Dropzone의 스타일 시트 그 아래에는 DropzoneJs 및 jQuery의 스크립트 또는 javascript가로드됩니다 여기에 업로드 할 이미지 또는 URL에 대한 URL 또는 액션이있는 form 태그를 만듭니다 dropzone을 첨부하려면 dropzone 클래스를 추가해야합니다 이미지 컨트롤러에 대한 기본 경로를 변경해 보겠습니다 업로드하려고하면 여기에 오류가 있습니다

이미지 / 업로드 URL을 찾을 수 없습니다 이미지 컨트롤러를 열고 새로운 업로드 방법을 만듭니다 여기에 업로드 할 파일이 있는지 확인합니다 그리고 여기서는 basic과 함께 codeigniter 업로드 라이브러리를 사용할 것입니다 구성 오류 dropzone에 의해 '파일'을 파일 이름으로 사용하십시오

따라서 do_upload 메소드에서 'file'을 전달합니다 업로드 할 때 오류 메시지를 표시하지 못했습니다 좋은 여기서 우리는 form_open_multipart를 사용하지 않지만 dropzone은 자동으로 처리합니다 여기에 우리는 하나 이상의 파일 서버를 업로드 할 수 있습니다 dropzone 파일의 기본 설정을 설정하지만 페이지를 새로 고침 할 때 박수를 치는 이미지를 제거하거나 표시 할 필요가 없습니다

그렇게하기 위해서 우리는 트럭과 프로그램을 프로그래밍 방식으로 설정해야합니다 그렇게 모두를 제외하고는 여기에서 이미지를 제한하려고합니다 그래서 여기에서 우리는 파일을 허용했습니다 이미지에 대한 속성 이제 오류로 인해 서버에 업로드 된 파일을 제거 할 수 있습니다 실제 파일이 아닌 시간 만 제거합니다

여기서는 제거 된 파일 기능을 제거하고 NJ를 수행하여 파일을 제거하도록 정의합니다 판매 중 우리는 파일을 얻는다 파일의 이름 인 비용이 제거되고 파일을 검사했습니다 이름이 비어 있지 않으며 파일이 서버에 존재합니다 확인 분석가 용 우리는 서버에서 파일을 제거했지만 다른 시간은 사라지지 않습니다

우리는 작은 선이 필요하다 우리가 서버에 업로드 파일을 검색했는지 확인합니다 이미 파일이 있습니다 서버 및 다음 우리는 페이지가 룬드 일 때 보여줄 필요가있는 한 걸음 더 나아야합니다 전자 메일은 이미지가 보여주는 첫 번째 바람의 실행 패션쇼 이 함수에서 생성 된 입장에서의 변화를 우리는 juku recap 메시지라고 부릅니다

최소한 검색에 이미 존재하는 모든 파일 우리가 지정한 강력한 파일에 모든 파일을 가져 오기 위해 파일 이름을 얻는다 여기에 크기가 네 가지 목이 파일 암호화가 필요하기 때문에 여기서 우리는 새로운 이름을보고 새 이름을 만든다 사후에 이름을 구성하는 새로운 RI 저스틴 코드 파일을 호출하여 해당 그림을 PHP에 저장했지만 오류가 발생했습니다 여기 잠시 동안 이미지 새로 고침 우리는이 서버에서 볼 수 없다 승인 및 응용 프로그램 / 프랑스어 그가이 평균 선장이기 때문에 나를 잊지 마라

온화한 반응은 좋아요 Google에서 성적인 업로드 파일을 삭제했으며 우리가 만들 예정인 모든 파일을 보여줍니다 구조 스타일에 약간의 변화가 있습니다 주제 메시지가 바뀝니다 우리가 트로이 목마 파일에 약간의 변화가 있었다는 것을 알고 트로이 목마에

iPhone Xs and Xs Max may arrive with a subtle but very useful upgrade from Apple | Tech News

iPhone Xs 및 iPhone Xs Max는 Apple에서 Steve Jobs Theatre의 무대에서 발표했습니다 수요일 쿠퍼 티노 (Cupertino)에서 열리 며 두 가지 모두 멋진 모습을 선사합니다

미국 기술 회사의 새로운 기함은 새로운 A12 Bionic 프로세서를 자랑합니다 휴대 전화에서 "가장 똑똑하고 가장 강력한"기술입니다 즉, XS와 XS Max는 모두 iOS 12를 통해 폭발 할 수 있어야하며 최신 및 최고의 게임을 쉽게 두 전화기 모두 향상된 듀얼 카메라 시스템을 갖추고 있습니다이 시스템에는 애플이 "스마트 HDR "은 스냅을보다 선명하게 보이고 더 자세한 내용을 유지해야합니다

그리고 새로운 "고급 세로 모드"가 사용자에게 더 많은 제어권을 제공하는 것으로 나타났습니다 배경에 적용되는 보케 효과 이상 얼굴 ID는 새롭고 개선 된 기능 덕분에 이전보다 더욱 안전하고 신속하게 전달 될 수있었습니다 알고리즘 그러나이 장치는 애플이 발표 한 기능으로 도착할 수있다

레이다 다소 아이폰 X 및 아이폰 8은 무선 충전 기능을 갖춘 글래스 리어를 특징으로합니다 작년에 애플의 찬사를받은 스마트 폰 라인으로 향했다 그러나 이제 1 조 달러 규모의 회사는이 프로세스가 iPhone에서 전보다 더 빨라질 것이라는 암시를 표시했습니다 Xs 및 Xs 새로운 자료 덕분에 Max

회사의 웹 사이트에 게시 된 게시물에는 : "지금 수술 용 등급의 ​​스테인레스 스틸 밴드 금은 은색과 공간 회색으로 마무리됩니다 보다 넓은 스테레오 재생은보다 몰입 형 사운드 스테이지를 만듭니다 "전면 및 후면 유리 디자인은 스마트 폰에서 가장 내구성이 뛰어난 유리를 특징으로합니다 향상된 긁힘 방지 기능을 제공하며 유리 뒷면은 빠른 무선 충전을 가능하게합니다 " 이러한 진술은 장치의 유리 백 생산을 위해 사용 된 새로운 재료를 의미합니다

무선 패드를 사용하여 "더 빠른"충전이 가능합니다 iPhone Xs와 iPhone Xs Max의 공식 발표 이전에 소문이났습니다 전화는 향상된 무선 충전 기능을 제공합니다 지난 달 중국 타임스는 애플이 새로운 무선 충전 코일을 iPhone 8과 iPhone에서 속도를 75W에서 상승시킬 수있는 최신 기함 X에서 10W

그러나이 기능에 대한 애플의 자세한 내용은 공식적으로 그러한 보고서를 확인하지는 않지만, 그것은 많이 제안되었습니다

Cloudify LAMP! (Drupal and WordPress on GKE+CloudSQL) (Cloud Next ’18)

[음악 재생] 페르난도 산체스 : 안녕, 안녕하십니까 여기에 우리와 함께 해 주셔서 감사드립니다

내 이름은 페르난도 산체스 야 나는 뉴욕시의 Google Cloud 고객 기술자입니다 그리고 여기 나와 함께 Sebastian Weigand입니다 세바스찬, 너 자신을 소개하고 싶니? SEBASTIAN WEIGAND : 안녕하세요 그렇습니다

페르난도가 언급 한 것처럼, 우리는 모두 Google NYC의 고객 엔지니어입니다 그리고 우리는 LAMP의 경이로움에 대해서 이야기하려고 왔습니다 그리고 현대화 페르난도 산체스 : 그래서 우리의 대화는 "Cloudify LAMP!"라고합니다 손의 속담을 보여줍니다

생산 현장에서 LAMP 기반 사이트를 운영하고 있습니까? SEBASTIAN WEIGAND : 만세! 페르난도 산체스 : 좋습니다 램프가 무엇인지 알 수 있습니다 정말 끝내주는 군 누가 생산에서 Kubernetes를 운영하고 있습니까? 적은 사람들 SEBASTIAN WEIGAND : 조금 적은 사람들

페르난도 산체스 : 어려운 일 – 누가 프로덕션에서 쿠 베넷에 램프를 돌리고 있니? 괜찮아 좋은 우리 모두 오늘 당신에게 무언가가 있기를 바랍니다 네 SEBASTIAN WEIGAND : 그래서, 우리가 말했듯이, 이 이야기는 클라우드 내부의 램프 작동에 관한 것입니다

따라서 IT를 현대화하는 것이 전부입니다 그래서 모든 다른 도전에 대해 생각한다면 우리가 과거에 보았던 측면에서 생산에서 무언가를 운영하는 것, 당신이 역사에 어디에 있는지에 따라, 당신은 그 문제에 대한 다른 해결책을 가지고 있습니다 근대화 이야기라면, 제 시간에 돌아갈 수있는 방법, 대화의 종류를 알아 봅시다 무슨 일이 일어나고 있는지 알아 내려고 오늘 우리가 할 수있는 일 조금 더 쉽게 할 수 있습니다 그래서 목적을 위해서 – 우리는 거기에 갈

이 프리젠 테이션의 목적을 위해, 내 동료 페르난도가 가고있다 Vandelay Industries의 CTO 역할을 담당합니다 FERNANDO SANCHEZ : CTO 모자를 쓰고 있습니다 SEBASTIAN WEIGAND : 그는 실제로 CTO 모자를 가지고 있습니다 그래서 이것은 맞춤 주문되었습니다

나는 devops 엔지니어가 될거야 나는 devops 엔지니어 때문에 모자를하지 않습니다 토템 기둥에서 매우 낮습니다 그래서 Vandelay Industries는 – 전에 들었던 사람, 그냥 호기심? 아, 저기에 몇 명이있어 우리가 가진 농담에 웃으면 서 말야

하지만, 네, 그들은 수입, 수출, 및 아키텍처 그들은 90 년대에 매우 두드러졌습니다 결과적으로 우리는 제 시간에 돌아갈 것입니다 그런 종류의 것을 살펴보십시오 하지만 Google Cloud 덕분에 요즘에는 매우 현대적인 초 고성능을 IT 스택은 LAMP에 집중되어 있습니다

전에 말했듯이 이것이 근대화에 관한 것이라면, 우리는 현대 IT 스택에 관해서 이야기 할 수 없다 우리가 어디서 왔는지 얘기하지 않고 이제 페르난도 (Fernando)가 CTO의 역할을 수행하게되었습니다 나는 devops 사람의 역할을 맡을거야, 우리는 제 시간에 돌아갈거야 나는 우리가 그 경이로운 음악을 가지고 있었으면 좋겠다

하지만 프레젠테이션에 오디오를 넣고 싶지는 않았습니다 일을 더 간단하게 유지하는 것 그래서 90 년대 후반입니다 이것을 머리 속에 그려보세요 소수의 다른 웹 사이트가 있습니다

맞습니까? 웹이 당시와 똑같은 모습이었습니다 저기 왼쪽 상단을 인식 할 수 있습니다 그것은 베타 버전입니다 우리는 많은 다른 조각들에 베타 태그를 두는 것을 좋아합니다 소프트웨어의

이 특정 시대에 웹 사이트 기업이 시작한 이래로 디지털 존재가 많은 의미를 가졌다는 것을 깨닫게되었습니다 당신은 전적으로 사업이 될 수 없습니다 온라인상의 무의미한 벽돌과 박격포 공간에서 고객을 리디렉션하거나 그렇게 할 수 있습니다 전자 상거래라는 용어는 인기를 얻고 있습니다 몇 가지 다른 웹 사이트가 있습니다

당신이 물건을 사러 갈 수 있다는 것, 또는 재고 목록을 살펴보고, 어쩌면 일을 설정하고, 일과 기타 등을 계획 할 수도 있습니다 물론, 다른 웹 사이트가 있습니다 당신의 개, 또는 가족을 위해 당신의 자신의 웹 사이트를 만들거나, 또는 기타 등등 그러나이 시점에서 큰 추세 모두가 디지털로 존재해야합니다 페르난도 산체스 : 물론

SEBASTIAN WEIGAND : 모두가 생각하고 있습니다 "나는 디지털 존재감이 있어야한다 나는 디지털 존재감이 있어야한다 " 그리고 누가 우리가 Vandelay Industries에 디지털 방식으로 존재해야만 했나요? 페르난도 산체스 : CTO SEBASTIAN WEIGAND : 우리의 훌륭한 CTO

FERNANDO SANCHEZ : 디지털이 필요합니다 우리는 인터넷에 있어야합니다 모두 인터넷에있어 이 인터넷 물건이 벗고있는 것 같습니다 그래서 나는 Vandelay가 인터넷에 있어야한다고 생각합니다

우리는이 웹 문제에 착수하여 디지털 존재 엔지니어링 팀, 어때요? 내가이 웹 물건에 들어갈 수 있도록? SEBASTIAN WEIGAND : 좋은 질문입니다 이것은 새로운 종류의 상황이지만 웹 물건, 웹 사물, 웹 것 좋아,이 웹은 어떻게 생겼지? 글쎄, 내가이 웹 물건을 갖게된다면, 나는 어떤 종류의 서버가 필요할 것이다 이 거대한 상자 형 물건은 꽤 잘 작동 할 것입니다

시대의 전형입니다 나는 일종의 웹 서버 소프트웨어가 필요할 것이다 그래서 분명히 웹 서버가 있어야만한다면, 당신은 하드웨어가 있어야합니다 모든 것을 가진 소프트웨어가 있어야합니다 또한 HTML 파일을 만들어야합니다

그것은 우리가 의미하는 바를 의미합니다 정적 HTML 코드를 코드로 이동하여 작동하도록하겠습니다 물론 애니메이션 GIF가 필요합니다 90 년대 후반이기 때문에 살아 움직이는듯한 GIF가없는 사람은 엉덩이가 멋지지 않습니다 페르난도 산체스 : 열쇠입니다

그것이 바로 열쇠입니다 애니메이션 GIF가 필요합니다 SEBASTIAN WEIGAND : 나는 우리가 몇 가지 애니메이션 GIF가 있는데 특히 이야기하기 공사중에 관한 것 페르난도 산체스 : 그것에 가자 SEBASTIAN WEIGAND : 그래서 나는 조금 생각했습니다

그리고 이것은 현대의 웹 스택이 나에게 닮은 것입니다 그래서 우리는 큰 유닉스 박스를 어딘가에 가지고 있습니다 우리는 Apache라고 불리는 것을 가지고 있습니다 이것은 새로운 것입니다 그것은 오픈 소스지만

네가 좋아할 것 같아 그리고 우리는 그 모든 정적 파일들을 가지고 있습니다 내가 전에 언급 한 그것들은 수십 가지 복잡한 코드가 아닙니다 그리고 우리는 이것을 가동시킬 수 있습니다

페르난도 산체스 : 좋아, 가자 SEBASTIAN WEIGAND : 그거 좋은데? 페르난도 산체스 : 그것에 가자 SEBASTIAN WEIGAND : 좋습니다 그래서 서버를 만들었습니다 나는 이것을 배치했다

모든 것이 환상적입니다 페르난도 산체스 : 좋습니다, 그래서 우리는 가져 오기, 내보내기 및 아키텍처 용 빌드 페이지를 작성합니다

SEBASTIAN WEIGAND : 네, 3 개의 웹 사이트, 아주 쉽습니다 – 가져 오기, 수출, 건축 FERNANDO SANCHEZ : 그게 우리가 필요한 전부입니다 SEBASTIAN WEIGAND : 그게 우리가 필요한 전부입니다 페르난도 산체스 : 왜냐하면, 웹 것, 우리가 떠날 지 알 수 있습니다 SEBASTIAN WEIGAND : 그래,이 웹 것 아마 어쨌든 위상 일 겁니다

그것에 대해 걱정하지 마십시오 페르난도 산체스 : 예, 예, 보겠습니다 우리가 뭔가를 만들 거라고 생각해 그래, 좋아 시간은 계속된다

SEBASTIAN WEIGAND : 이제는 2000 년대 초반입니다 우리가 여기서 가장 중요한 것은 웹입니다 이것이 성공할 것이라는 것을 누가 알았습니까? 당신은 많은 수의 회사가 있습니다 이 새로운 디지털 플랫폼을 채택하고 있으며, 디지털 존재감 확립, 디지털 브랜드 구축 등이 포함됩니다 내 말은 미친 소리 야

우리가 설정 한 웹 사이트가 점점 커지고 있습니다 상당한 양의 트래픽 실제로 사람들은 수입에 정말로 관심이 있습니다 수출 및 건축 FERNANDO SANCHEZ : 누가 맞힐까요? 인터넷에서? SEBASTIAN WEIGAND : 그리고 결과적으로, 우리는이 일을 계속 지키고 싶다

실행하고 그 일을 정적 HTML 파일을 부지런히 업데이트했습니다 다양한 편집자에게 손으로 그리고 새로운 페이지를 요청할 때마다, 이제 우리는 하나 이상의 가져 오기 페이지와 하나 이상의 내보내기 페이지가 있어야합니다 그리고 하나 이상의 아키텍처 페이지 – FERNANDO SANCHEZ : 아키텍처 페이지를 좋아합니다 SEBASTIAN WEIGAND : 당신은 아키텍처 페이지를 좋아합니다

하지만 많은 것들이있어서 이 일을 시작하고 실행하기 위해 노력해야합니다 그러나 당신도 알다시피, 그들은 변화하고 있습니다 페르난도 산체스 : 그래, 많은 것들 지금 인터넷에서 일어나고 있습니다 SEBASTIAN WEIGAND : 물론 이죠 이것이 우리 마음에있는 것입니다

이제 우리는 휴대폰을 가지고 있습니다 그들은 조금 더 유비쿼터스 화되고 있습니다 우리는 판매되고 또한 다운로드되는 디지털 콘텐츠를 보유하고 있으며, 잠재적으로 불법적으로 우리는 또한 인터넷이 주요 요인이되고 있습니다 기업의 성공에 더 이상 비즈니스가 일종의 디지털 존재없이 존재합니다 비즈니스가 존재해야하며 상당한 금액의 수익이 있어야합니다

실제로 디지털 존재의 일종을 가지고 온다 사람들이 가서 물건을 살 수 있도록 온라인으로 및 서비스 등을 포함한다 페르난도 산체스 : 그래서 Vandelay의 웹은 훌륭하게 작동합니다 트래픽이 많이 발생하고 있습니다 우리는 인터넷에서 많은 사업을하고 있습니다

그러나 분명히 시간이 흐르고 나는 너희들이 어려움을 겪고있는 것처럼 느껴져 엔지니어링 측면 SEBASTIAN WEIGAND : 솔직히 말해서, 우리는 실제로 몇 가지 어려움을 겪고 있습니다 우리가 달리고있는 것들 중 하나 그 하나의 서버는 훌륭하게 작동합니다 나는 절대적으로 환경과 이것 저것을 좋아한다

거기에 – 그것은 그것이 내가 머물러 있기를 바랄만큼 위로 머물러 있지 않습니다 때로는 충돌이 발생하고 문제를 해결해야합니다 또한 휴식을 취하는 가끔 부분을 교체해야합니다 그것의 꼭대기에, 나는 확실하게해야한다 전달하려는 콘텐츠가 코딩되고 배송 됨 그리고 다른 사람들의 무리에게 보냈습니다

그래서 그게, 조금 어렵습니다 FERNANDO SANCHEZ : 더 많은 기능이 필요하다고 생각합니다 모든 HTML 파일을 편집해야한다고 생각합니다 손으로, 저것은 – 너와 너 팀 – 그건별로 실용적이지 않습니다 따라서 콘텐츠를 동적으로 변경해야한다고 생각합니다

웹 사이트가 있도록 시스템이 필요합니다 구조는 거기에있다 그러나 우리는 단지 콘텐츠를 추가하고 콘텐츠를 제거합니다 HTML 파일을 편집 할 필요가 없습니다 그리고 다른 하나는 멋진 상자입니다

그대로, 나는이 구글 친구들이 상용 서버를 사용하는 것과 매우 흡사합니다 SEBASTIAN WEIGAND : 나는 그것을 들었다 페르난도 산체스 : 아마도 우리는 범용 서버를 사용해야합니다 그리고 저는 가상 서버에 대해서도 마찬가지입니다 SEBASTIAN WEIGAND : – 서버

페르난도 산체스 : 분명히 당신은 할 수 있습니다 서버 내부에 서버를 생성하십시오 그리고 그것들을 복사하여 주위로 옮길 수 있습니다 그런 다음 하드웨어를 더 잘 사용할 수 있습니다 내 CTO 비전에서 생각하기에, 콘텐츠 관리 시스템을 구현해야합니다

그리고 가상화해야합니다 엔지니어링 팀 – SEBASTIAN WEIGAND : 네, 선생님? 페르난도 산체스 : 어떻게 도와 주실 수 있습니까? SEBASTIAN WEIGAND : OK, 컨텐트 관리 시스템, 가상화해야합니다 괜찮아 어떻게하는지 알아 보겠습니다 그렇다면 현대 IT 스택은 어떻게 생겼을까요? 내가 구축해야하는이 CMS는 무엇입니까? 그럼 아직 웹 사이트이므로 여전히 웹 서버가 필요합니다

나는 여전히 데이터베이스가 필요할 것이다 나는 약간의 CMS 소프트웨어를 생각해 내야 할 것이다 하지만 이제 저는 두 사람을 고용해야합니다 이봐, 우리는 아주 성공적이었다 창업자 인 Art Vandelay는 절대적으로 중요했습니다

높은 구경의 사람들을 끌어들이는 데 우리가 우리 조직에 갖고 싶어하는 것 결과적으로, 몇 명의 작전 단원을 고용해야합니다 왜냐하면 지금 나는 다른 VM들을 가지고 있기 때문이다 예를 들어 데이터베이스 VM과 같이 관리해야하는 그리고 웹 서버 VM 및 기타 등등을 관리해야합니다 또한 나는 dev 사람들이 필요할 것이다

페르난도 산체스 : 네 SEBASTIAN WEIGAND : 이제 우리는 사용중인 응용 프로그램 사용 나를 위해 이러한 모든 동적 웹 사이트를 관리하려고합니다 그래서 저는 그 사람들과 VM을 고용해야 할 것입니다 FERNANDO SANCHEZ : VM은 무엇입니까? SEBASTIAN WEIGAND : 가상 머신 페르난도 산체스 : 오, 알았어

SEBASTIAN WEIGAND : 나는 확실히해야 할 것이다 우리가 실제로 관리 할 수있는 무언가를 얻었습니다 그걸 멋지게 감쌌다 이게 내 머리 속에서 어떻게 생겼어? 약간의 생각이 들었습니다 이것이 내가 생각해내는 것입니다

그래서– FERNANDO SANCHEZ : 좋아, 네가 가진 걸 보자 SEBASTIAN WEIGAND : 그래서, 현대의 웹 스택 – 음, 2000 년대에 – 램프가 생겼어 그런데, 리눅스, 아파치, MySQL, PHP 페르난도 산체스 : 그것은 그것이 무엇을 의미합니까! SEBASTIAN WEIGAND : 그것이 바로 그 의미입니다 그것은 지니 생각이 아닙니다

그것은 단지 두문자어입니다 유닉스가 리눅스가되기 때문에 우리는 유닉스 대신 리눅스를 가지고있다 Linux는 새로운 인기입니다 또한 저렴합니다 그것은 무료입니다

그리고 그것은 잘 작동합니다 페르난도 산체스 : 나는 그것을 좋아한다 SEBASTIAN WEIGAND : 당신이 좋아할 것 같아요 나는 돈을 저축하고있다 아파치는 여전히 실제 운영되고 있으며, 아파치가 엄청난 양의 일을하기 때문이다

그들은 새로운 기능을 계속해서 구현하고 있습니다 그것들은 당신이 얻을 수있는 사실상의 웹 서버 소프트웨어입니다 또한, MySQL, 무료 데이터베이스 – 니가 그걸 좋아할 거라 생각 했어 페르난도 산체스 : 무료 맥주와 같이 무료 또는 무료로 무료로 제공됩니다 연설? SEBASTIAN WEIGAND : 둘다 실제로, 꽤 멋지 네요

그들은 지원 서비스를 가지고 있지만, 우리가 추가 지원이 필요하면 우리는 그들을 연결할 수 있습니다 그리고 이것 저것 그리고 PHP는이 비밀 소스 프로그래밍 언어입니다 그런 종류의 모든 것을 하나로 묶어서 당신을위한 동적 인 웹 사이트 오 그런데, 우리는 2를 얻었고, count 그들, 그것을하는 두 가지 다른 방법

Drupal과 WordPress가 있습니다 그래서 우리는 그들 중 하나를 선택할 수 있습니다 그것들은 실제로 이러한 것들과 우리가 상호 작용할 수있는 것들을 생성합니다 그리고 나서 여기가 당신의 VM을 할 것입니다 KVM 또는 Xen

나는 약간의 연구를해야한다 어떤 것이 우리의 필요에 더 잘 맞는지 알아 내려고하지만, 페르난도 산체스 : KVM 또는 젠 – 여기처럼 – 다른게 없었어 VM웨어 같은 것을 했나요? SEBASTIAN WEIGAND : 오, 그래, 잘있어 이 미친 여자, 다이앤 그린이나 뭐든간에 그녀는이 회사를 시작하고 있지만 듣고 있습니다

그들은 비싼 것 같아요 그래서 나는 일을 좋고 자유롭고 오픈 소스로 유지할 것입니다 이것이 바로 현대 웹 스택의 모습입니다 페르난도 산체스 : 좋아, 너희들이 이것들을 선택하고있어 너희들이 이것들을 고르고있다

그리고 다른 사람들이 선택한 것은 무엇입니까? 아주 독창적입니까, 아니면 SEBASTIAN WEIGAND : 물론 이죠 사실, 잠깐 만요

여기에 몇 가지 통계를 해봅시다 나는 밖으로 나갔다, 나는 약간 통계를 움켜 잡았다 이것 좀보세요 이것은 인터넷에서 돌아 다니는 모든 웹 사이트입니다 이 거대한 덩어리를보세요

페르난도 산체스 : 인터넷의 1/3이 램프를 가동 중입니다 SEBASTIAN WEIGAND : 예, 인터넷의 3 분의 1 실제로 램프에 있습니다 실제로 사용하는 사람들의 2/3 WordPress, Joomla 또는 Drupal 중 하나를 선택했습니다 그것은 제가 전에 언급 한 두 가지를 의미합니다 우리가 그들을 사용한다면 안전한 내기

Fernando SANCHEZ : CMS의 경우, 세계에서 세 개의 CMS 중 하나는 WordPress 또는 Drupal입니다 SEBASTIAN WEIGAND : 물론 이죠 페르난도 산체스 : 너희들처럼 보인다 올바른 말을 내기 좋아, 나는 그것을 좋아한다

나는 그것을 좋아한다 그럼 가자 이것을 사용합시다 이것을 사용합시다 그리고 시간을두고 진행합시다

우리는 이런 것들을 사용하고 있습니다 SEBASTIAN WEIGAND : 이제 2010 년입니다 페르난도 산체스 : 2010입니다 그것은 구름입니다 그것은 구름입니다

SEBASTIAN WEIGAND : 우리의 마음에, 구름 페르난도 산체스 : 모든 곳의 구름 SEBASTIAN WEIGAND : 구름, 구름, 구름 – 나는 거리를 걸어 다닐 수 없으며 이메일을 열 수 없다 나를 끌어들이려는 사람들의 수없이 이 흥미로운 구름이 있습니다 나는 구름, 구름에 대해 듣지 않고 어느 곳으로도 갈 수 없다

클라우드, 흐림, 흐림, 클라우드 그래서 우리의 마음에, 그것은 구름입니다 FERNANDO SANCHEZ : 그러면이 가상화처럼 보입니다 우리가 가진 것은 일하고 있었지만 우리는 또한 – 너희들이 몇 가지 어려움을 겪고있는 걸 내가 안다 현재의 아키텍처와 맞습니까? 이것이 성장한 후에 Art Vandelay 우리의 진보와 함께 세 부분으로, 가져 오기, 내보내기, 및 아키텍처

SEBASTIAN WEIGAND : 그래, 절대적으로 페르난도 산체스 : 그는 정말로 흥분하고 있습니다 사업은 계속되고 있지만 사실, 우리는 우리 한계를 여기에서 치고 있지, 그렇지? SEBASTIAN WEIGAND : 나는 정직하다 우리에게는 엔지니어링에 몇 가지 어려움이 있습니다 우리가 가진 것들 중 하나는 로컬에서 MySQL을 돌리는 것입니다

그것은 확장되지 않습니다 들어가서 크기를 조정해야 해 VM이 아닙니다 실제로 추가 하드웨어를 구입해야합니다 디스크 백 로그가 있는지 확인해야합니다

데이터 센터에 도착했는지 확인할 수 있습니다 적절한 시간에 우리가 그들을 넣을 수 있는지 확인하십시오 서버에서 랙에 쌓아서 구성하고 가져옵니다 배포 및 모든 것 또한, 나는 ~해야한다

각 컴포넌트를 독립적으로 스케일링하고 싶습니다 VM 측에서 서로 다른 웹 티어와 크기가 다르므로, 서로 다른 VM들과 그 외의 것들은 있지만 기본 하드웨어 건축물 그래서 네트워크는 약간 달라져야합니다 웹 프론트 엔드가 데이터베이스와 대화해야하기 때문에 백엔드

그 파이프가 멋지고 뚱뚱하다는 것을 확인해야합니다 모든 것이 작동 할 수 있도록 또한 페이징되는 것을 좋아하지 않습니다 나는 오랫동안 회사에 있었고, 하지만 우리 창립자의 말을 받아 들인다면, 그는 주어진 시간에 너무 많이하고 싶지 않다고 이야기했습니다 그리고 나는 더 이상 전화하고 싶지 않습니다

또한 이러한 서버를 배포 및 운영하고 유지 관리하며, 사실, 할 일이 많이 남아 있습니다 내가해야 할 사람들을 고용해야 해 다른 것들의 무리 하지만 하드웨어를 유지해야합니다 나는 가상 동등 물을 유지해야한다

내 시간을 많이 먹고있는 하드웨어 때문일 수도 있습니다 페르난도 산체스 : 네, 그렇습니다 내가 참조 내가 참조 내가 참조

이 회사가하는 일에 집중하길 바래 우리는 하드웨어 회사가 아닙니다 우리는 수입, 수출, 및 아키텍처 그래서 저는 여러분들이 단지 우리 회사가하는 일이 무엇이든, 하드웨어가 아닌 조작 내가 본 다른 것은 우리는 매번 도전을 받고있다

우리는 점점 더 많은 수요를 얻습니다 그리고 내가 원하는 것은 그 일을위한 것입니다 위아래로 확장 할 수 있습니다 그리고 우리가 사용하고있는 것에 대해 지불하고 싶습니다 나는 우리가 사용하지 않는 것들에 대해 우리가 지불하고있는 것이 무엇인지 모른다

그래서 나는 일들을 확장 할 수 있기를 바랍니다 그리고 나는 당신이 경영에 집중하는 것을 좋아하지 않을 것입니다 인프라에 집중하고 싶지 않습니다 클라우드에 있어야한다고 생각합니다 구름, 우리는 구름, 구름, 구름에 있어야합니다

왜 우리는 구름 속에 있지 않습니까? 우리는 구름 속에 있어야합니다 나는 구름을 좋아한다 나는 심지어 구름이라는 단어를 좋아한다 구름 기술 장교 SEBASTIAN WEIGAND : 아, 그래, C

와 함께 그래, 좋아 구름 좋아, 나 좀 가자 생각 좀해라

페르난도 산체스 : 좋아 SEBASTIAN WEIGAND : 구름 구름 구름 우리가 구름으로 이동할 예정이라면, 나는 구름이 물건들을 제공하기를 원할 것이다

나를 위해 승인? 이 구름이 무엇인지 생각하면, 그것이 무엇을 제공하는지 생각하면, 나는 그것을 비즈니스 요구와 짝 지워야한다 그래서 내가 무엇을 필요로 하는가는, 우선, 나는 클라우드 사용 방법을 파악해야합니다 일종의 명백한,하지만 어떻게 해야할지 알아낼 필요가있다 우리는 KVM 및 Xen을 통해 많은 전문 기술을 개발했습니다

그러나 그들은 GUI를 배우기 때문에 꽤 적용되지 않습니다 API와 다른 것들이 있습니다 페르난도 산체스 : 코드 녀석들이 대신 할거야, 그렇지? SEBASTIAN WEIGAND : 반드시 그런 것은 아니지만, 구체적인 인프라와 방법으로 그것은 구성되어 있습니다 버튼을 넣을 수 있다고 확신하지만 어렵습니다 그래서 저는이 용어가 "들어 올림과 교대"라고 들었습니다

심지어 운도 좋은 용어가되어야 해 결과적으로 애플리케이션을 마이그레이션해야합니다 우리는이 세 가지 큰 응용 프로그램을 가지고 있습니다 가져 오기 작업량, 내보내기 작업량, 및 아키텍처 워크로드

그래서 우리는 그것들을 클라우드로 가져 가고 싶습니다 페르난도 산체스 : 우리는 그 (것)들을 들게하고 그 구름 속에서 그들을 이동 시켜라 SEBASTIAN WEIGAND : 그래, 그들을 들어 올리고 그들을 옮긴다 FERNANDO SANCHEZ : 클라우드로 이동하십시오 나는 그것을 좋아한다

그래, 가자 SEBASTIAN WEIGAND : 잠깐 만요 클라우드 – 네이티브라는 것이 있습니다 나는 그것에 대해 계속 듣고있다 FERNANDO SANCHEZ : 저도 그렇습니다

SEBASTIAN WEIGAND : 클라우드에서 태어난 것은 뭔가? 그리고 그것을 활용하도록 설계되었습니다 그래서 그게 무엇인지 알아 내야합니다 그러나 그 동안에 – 페르난도 산체스 : 그것은 단지 리프트와 교대 일뿐입니다 거기 프레임 SEBASTIAN WEIGAND : 바로 들어 올리고 이동하십시오

FERNANDO SANCHEZ : 그리고 우리는 그것을 알아낼 것입니다 SEBASTIAN WEIGAND : 버튼을 넣으면 좋을 것 같습니다 FERNANDO SANCHEZ : 그게 전부입니다 움직여 보자 움직여 보자

그리고 나서 시간이지나갑니다 시간은지나갑니다 SEBASTIAN WEIGAND : 오늘의 선물입니다 FERNANDO SANCHEZ : 우리는 우리 물건을 들고 구름으로 옮겼습니다 그리고 그것은 클라우드에서 돌아가고 있으며 우리는 행복합니다

새벽 3시에 호출되지 않습니다 SEBASTIAN WEIGAND : 글쎄, 때때로 여기저기서, 그러나 대부분은 너무 나쁘지 않습니다 FERNANDO SANCHEZ : 그래도 우리는 여전히 VM을 클라우드에 보유하고 있습니까? SEBASTIAN WEIGAND : 음 – 흠 페르난도 산체스 : 우리는 여전히 클라우드의 가상 시스템에서 데이터베이스를 처리합니까? SEBASTIAN WEIGAND : 네 FERNANDO SANCHEZ : 그래서 우리는 똑같은 일을하고 있습니다

다른 사람들의 컴퓨터 에서요? SEBASTIAN WEIGAND : 당신이하는 말을 봅니다 예, 그렇지만 하드웨어에 대해 걱정할 필요가 없습니다 구성 요소 및 사물 페르난도 산체스 : 좋습니다 좋습니다

SEBASTIAN WEIGAND : 버튼 클릭에만 집중할 수 있습니다 수용력을 얻는다 그 사람에 대해 걱정할 필요가 없습니다 우리가 모든 하드웨어 관련 문제를 다루기 위해 고용 한 소지품 우린 그를 다시 태어 났고, 이제 그는 실제로 우리 devops 그룹에서 일하고

우리는 팀을 합병했습니다 페르난도 산체스 : 좋아 SEBASTIAN WEIGAND : 당신은 어떻게 생각하니? 멋지다, 응? 페르난도 산체스 : 나는 아직도 걱정하고있다 10 년 전에 클라우드 네이티브를 언급했기 때문입니다 그리고 난 잘 모르겠다

나는 그 말을 계속 듣는다 나는 사람들이 구름 속에서 생산된다는 이야기를 계속 들으며, 그러나 신축적인 방식으로, 주문형으로 그래서 지금은 걱정입니다 우리는 클라우드를 최대한 활용하고 있습니까? 우리는 최선의 방법으로 구름을 사용하고 있습니까? 엔지니어링 팀? SEBASTIAN WEIGAND : 솔직히 말해서, 아마도 반드시 그런 것은 아닙니다 페르난도 산체스 : 그럼 우리는 무엇을 조사 할 수 있습니까? SEBASTIAN WEIGAND : 내가 실제로 한 것에 다시 돌아가 보자

할 구름이 필요합니다 그러면이 구름이 실제로 무엇을 제공할까요? 그리고 실제로 그것을하기 위해 나는 무엇이 필요합니까? 이 투자에서 가장 큰 가치를 얻으려면 어떻게해야합니까? 글쎄, 내가 필요한 것은, 우리가 멋진 밴델 레이에서 필요한 것 산업 분야는 신뢰성, 확장 성, 자동화, 표준화 나는 그것을 올려 놓을 때 머물러 있어야한다 나는 그것이 내려 가지 않도록 배양 할 것이 필요하다 따라서, 머물러 있지 않습니다

우리가하지 않기 때문에 자동화해야합니다 소수의 사람들, 우리는 지금 많은 웹 페이지를 가지고 있습니다 그래서 저는 버튼을 누르고 뭔가 효과가 있기를 바랍니다 표준화 – 그래, 절대적으로 표준화가 필요하다 표준화가 필요한 이유는 하나의 프레임 워크, 하나의 인프라를 배웠다

그런 다음 변경되었습니다 우리는 다른 일로 갔다 우리는 모든 것을 다시해야했다 나는 다시는 그것을하고 싶지 않습니다 버튼을 누른 다음 작동 시키려고합니다

사실, 나는 작전을 원하지 않아 페르난도 산체스 : 뭐라구? 미안해, 뭐야? SEBASTIAN WEIGAND : 아무런 조작이 없습니다 페르난도 산체스 : 아, 그래 나는 그것을 좋아한다 SEBASTIAN WEIGAND : 얼마나 놀랍습니까? 내 말은, 내가 버튼을 누를 수있는 세상을 상상해 보라

컴퓨터가 스스로 작동합니다 페르난도 산체스 : 나는 그것을 좋아한다 그래서 너희들은에 초점을 맞출 것이다 운영 및 하드웨어 및 – 나는 그것을 좋아한다 나는 그것을 좋아한다

우리는 그렇게해야합니다 그렇다면 우리는 현대 IT 스택 어쩌면 오늘의 도구? SEBASTIAN WEIGAND : 네, 좋아, 그럼 약간의 생각이 들었다 그리고 나는 흥미롭고 재미있는 것을 생각해 냈다 당신이 좋아할 것 같아요

페르난도 산체스 : 좋아, 보자 SEBASTIAN WEIGAND : 내가 생각하기에 현대 IT 스택처럼 보일 것입니다 Kubernetes라고 불리는 것을 활용합시다 보다 나은 가상 네트워크를 활용 해 보겠습니다 더 나은 가상 스토리지

관리되는 보안, 모니터링 및 로깅 호스팅, 자동화 된 보트로드 등이 포함됩니다 여기에 문제가 있기 때문에 인프라의 전체 하위 섹션에 전원을 공급해야한다 나머지 인프라 관리 배포해야합니다 나는 단지 그것이 나를 위해 일하기를 바랄 뿐이다 그것은 꽤 멋지다

특히 당신이 Kubernetes를 고려할 때 우리를 위해 많은 일을합니다 재미있는 개념입니다 우리는 단지 일부 애플리케이션을 컨테이너 화해야합니다 여기저기서, 나는 우리가 잘되어야한다고 생각합니다 FERNANDO SANCHEZ : 좋습니다, 그래서 우리는 아이디어를 가지고 있습니다

나는 우리가 그것에 대해 연구해야한다고 생각한다 우리는 아마 우리의 램프 스택을 가져와이 모든 것들을 사용해야합니다 어떻게 보이는지 보아라 SEBASTIAN WEIGAND : 우리는 페르난도 산체스 : 좋아, 그럼 그 일을 해보 죠 그것에 대해 노력합시다

우리의 램프 솔루션 SEBASTIAN WEIGAND : 이제는 내 동료 페르난도 이 훌륭한 권위자의 CTO가되는 것을 멈추게 될 것입니다 Vandelay Industries와 대신에 Google 고객으로 자신의 역할을 재개하려고합니다 나 자신과 함께 엔지니어 그리고 우리는 실제 연결된 솔루션에 대해 이야기 할 것입니다

우리가 생각해내는 산업은 우리가 언급 한 모든 것들을 이용하기를 원한다 우리가 원하는 모든 필요 사항을 충족시키고 모든 이점을 얻으십시오 우리가 얘기했던 것 페르난도 산체스 : 좋아, 그래서 우리는 우리의 램프 응용 프로그램을 얻을 수 있습니다 그래서 그것은 동일하게 유지되어야합니다

Vandelay Industries를 위해 개발 된 많은 것들이 있습니다 우리가 Drupal 또는 WordPress에서 일 했든, 우리는 여전히 그것을하고 싶다 그러나 우리는 이것을 컨테이너에 담기를 원합니다 컨테이너에 넣고 싶습니다 그래서 우리는 그것을 변경할 필요가 없다

구성 할 필요가 없습니다 우리는 그것을 지킨다 SEBASTIAN WEIGAND : 네 FERNANDO SANCHEZ :하지만 우리는 컨테이너를 다루고 싶지 않습니다 우리는 VM 관리에서 관리에 이르기를 원하지 않습니다

컨테이너 관리 컨테이너를 사용할 수있는만큼 서비스, ​​우리를 위해 클러스터를 처리하는 사람, 잘 그게 좋을거야 LAMP의 또 다른 주요 부분은 데이터베이스입니다 그게 정보가있는 곳입니다 이것이 척추의 핵심 시스템입니다

작업 조각을 제거 할 수 있다면 우리가 가지 않고 좋은 잠을 잘 수 있다면 백업 작업, 유지 관리, 높은 가용성과 그러한 것들에서, 그것은 좋을 것입니다 이제 관리되는 MySQL 버전을 살펴 보겠습니다 램프가 가지고있는 다른 것은 저장 장치입니다 저장에는 두 가지 기능이 있습니다 첫 번째는 LAMP가 상태를 유지하는 곳입니다

그것이 바로 가상 머신입니다 구성을 저장합니다 그리고 그것이 저축 할 수있는 곳이기도합니다 일부 정적 컨텐츠 또는 이미지, 또는 귀하의 동영상, 또는 아무것도 그렇다면 클라우드 스토리지 솔루션을 얻는 방법에 대해 솔루션을 클러스터의 나머지 부분에 연결 하시겠습니까? 그리고 우리가 원했던 마지막 부분은 자동화입니다

우리는 어떻게이 모든 것을 하나로 모을 수 있습니까? 한 번의 클릭으로 클러스터를 만들 수 있습니다 [INAUDIBLE]에 대한 모든 구성을 가지고 있습니다 누군가가 원한다면 어디서나 repo에 코드를 작성하십시오 클러스터를 변경하려면 클러스터에 닿아 야합니다 코드를 터치 한 다음 다시 배포합니다

승인? SEBASTIAN WEIGAND :하지만 가장 중요한 것은 여기에있는 모든 것들, 만드는 것 또는 깰 수있는 것 이 솔루션은 Kubernetes입니다 제 말은, 다른 많은 것들처럼, 물론, 그러나 이것은 절대적으로 중요한 구성 요소와 같습니다 그게 효과가있다 페르난도 산체스 : 나는 동의한다 SEBASTIAN WEIGAND : 좋은 해결책이라고 생각합니다

페르난도 산체즈 : 왜 쿠 베르 네스인가? SEBASTIAN WEIGAND : OK, Kubernetes 친절 하네 우선, 그것은 표준입니다 그래서 우리가 Kubernetes에 명단을 쓰면, 그것은 밖으로있는 Kubernetes 제안에 작동 할 것입니다 그것은 누군가가 가지고있는 Kubernetes 환경에서 작동 할 것이며, 환경이 작동하면 그 외의 것들을 제공합니다 또한 실패를 통해 원하는 상태를 유지하며, 나는 페이징받을 필요가 없다는 것을 의미한다

Kubernetes는 재시작을 처리 할 것입니다 따라서 신뢰성 구성 요소는 Kubernetes가 끝내는 자동화에 의해 돌 보았다 제공 또한 확장 성을 제공합니다 그들은 일종의 손을 맞잡고갑니다

그래서 우리가 막대한 양의 교통 체증을 겪고 있다면, Kubernetes 스케일링 기능을 활용할 수 있습니다 자동 확장 기능 – 페르난도 산체스 : 나는 그것을 좋아한다 SEBASTIAN WEIGAND : – Vandelay Industries가 과거에 관심 있었던 수퍼 듀퍼 – 더 많은 인프라를 가동하고 필요에 따라 소비 할 수 있습니다 또한 프로그램하기가 상대적으로 쉽습니다 나는 비교적 말하기 때문에, 예, 그렇습니다

기발한 종류의 YAML 문법을 가지고있다 너는 주변에서 바이올린을 써야한다 그러나 일단 당신이 그것을 끝내면, 당신의 모든 주, 심지어 매우 복잡한 응용 프로그램, Kubernetes 서비스 내에서 실제로 매핑 될 수 있습니다 하지만 몇 가지 단점이 있습니다 관리하기가 어렵습니다

그리고, 사실, 저는 여기에 서있을 겁니다 그래서 사람들은 실제로 볼 수 있습니다 관리하기가 어렵습니다 움직이는 부분이 많은 큰 분산 시스템입니다 업그레이드하기가 어렵습니다

많은 이동 부품이있는 대형 분산 시스템 같은 것을 위해 확장하는 것은 매우 어렵습니다 또한 다른 인프라 서비스가 필요합니다 작동하려면 Kubernetes를 넣을 VM이 필요합니다 실제로 코드를 실행하려면 컴퓨터가 필요합니다

나머지 클러스터에 전원을 공급합니다 또한 응용 프로그램이 아닌 상태 비 저장 응용 프로그램을 선호합니다 물건을 챙겨야 할 국가가있다 백엔드에 그러나 나는이 문제의 대부분을 해결할 수 있다고 생각합니다

Google Kubernetes 엔진을 살펴 보겠습니다 그렇지 않으면 GKE로 알려져 있습니다 정말 대단한 점은 같은 프로를 모두 얻는 것입니다 그것은 여전히 ​​표준입니다 여전히 원하는 상태를 유지합니다

여전히 확장 성 및 안정성을 제공합니다 당신은 그것이 관리되는 보너스를 얻습니다 Google의 전설적인 SRE 팀이 당신은 실제로 저기로 가서 그들을 들여다 볼 수 있습니다 그러나 여전히 무국적 응용 프로그램을 선호합니다 페르난도 산체스 : 이해합니다

SEBASTIAN WEIGAND : 이것이 대부분의 문제를 해결합니다 우리가 인프라를 관리한다는 측면에서 볼 때, 그 상태가없는 부분은 예외입니다 그것에 대한 아이디어가 있습니까? FERNANDO SANCHEZ : 나는 그렇다 레거시 애플리케이션을 사용하는 것 그들은 무국적자로 작성되지 않았습니까? 상태를 일종의 파일 시스템에 저장하도록 작성되었습니다 당신은 comf 파일을 가지고 있고 상태 파일을 가지고 있습니다

따라서 단일 서버를 실행하는 대신, 우리는 100, 1,000 개의 컨테이너를 실행하려고합니다 동일한 응용 프로그램에서 실행하면 국가를 공유해야합니다 컨테이너는 무국적자입니다 컨테이너를 재부팅하는 경우 컨테이너의 파일 시스템 사라 이는 우리가 Drupal 컨테이너를 설치하면, 우리는 그것을 구성하고 거기에 물건을 넣기 시작합니다

재부팅하면 사라 졌어요 그렇다면 어떻게 시뮬레이션 할 것인가, 레거시 소프트웨어를 얻는 방법 그것이 유산에서 돌아가고 있다고 믿게합니다 인프라를 구축하는 동시에 장점을 제공합니다 현대 건축의? 그래서 우리가해야 할 일은 근본적으로 공유 파일 시스템을 가져와 모든 컨테이너 만들기 공유 파일 시스템에 액세스하고 모두가 동시에 읽을 수 있습니다 그들 모두가 동시에 글을 쓸 수 있어야합니다

그럼 쿠베 넷에서 어떻게 할거 니? 기본적으로 파일 시스템입니다 마운트는 많은 것을 읽고, 많은 것을 씁니다 모두가 익숙한가요? 그래서 여러 가지 해결책이 있습니다 그렇게하면 할 수 있습니다 예를 들어, 그 중 하나는 NFS만큼이나 간단합니다

NFS는 NFS 서버가 될 수 있습니다 그러나 NFS는 모든 스토리지 솔루션이 될 수 있습니다 NFS 인터페이스를 지원합니다 여러분이 좋아하는 스토리지 공급 업체가 거대한 시스템을 가질 수 있고, 매우 안전한 NFS를 제공한다 이를 클러스터에 연결할 수 있습니다

또는 주문형 NFS 서버를 사용할 수도 있습니다 Google 클라우드 파일 서버 전설적인 Google이 관리하는 스토리지를 제공합니다 SRE– 미안, 팀 그래서 기본적으로, 다른 일은 일어납니다

그 상태입니다, 그것은 정적 인 내용입니다 그것은 구성을위한 것이지만 많은 사람들이 LAMP를 사용하는 요즘에는 Drupal, 헤드리스 CMS라고하는 것입니다 이것이 의미하는 것은 Vandelay Industries가 어느 시점에서, 드루팔 (Drupal)과 워드 프레스 (WordPress)와 같은 방식을 좋아하지 않을 수도 있습니다 프론트 엔드를 찾으십시오 그들은 훌륭한 콘텐츠이기 때문에 Drupal을 사용하기를 원할지도 모릅니다 관리 시스템

사용자가 사용할 수있는 시스템입니다 콘텐츠를 만들고, 콘텐츠를 편집합니다 그리고 아마 Drupal을위한 UI를 제공하는 대신에, 드루팔 (Drupal)과 워드 프레스 (WordPress) 어쩌면 그들은 Drupal을위한 API와 같은 것을 사용하기를 원할 것입니다 그리고 워드 프레스, 중간에 API 게이트웨이를 넣어, 그런 다음 좋아하는 기술을 사용하십시오 프론트 엔드를 작성하려면 Redux에 반응하여 Angular, 그들이 원하는 것을 사용하든간에

그래서 당신은 두 세계의 장점을 얻습니다 당신은 프론트 엔드를 얻을 프론트 엔드가 API 게이트웨이를 호출합니다 API 게이트웨이는 Drupal 및 Out에서 콘텐츠를 가져옵니다 이것이 의미하는 것은 스토리지 시스템 이 상태가있는 것은 사실상 엄격한 요구 사항, 맞죠? 시스템의 주요 구성 요소가 아닙니다

왜냐하면 정적 인 콘텐츠가 아마 다른 곳에서 호스팅되기 때문입니다 귀하의 Reux Redux는 아마도 API 게이트웨이를 때리고있을 것입니다 API 게이트웨이가 다른 곳에서 가져 오는 중입니다 따라서 분산 저장 시스템에서 우리가 얻게 될 것은 무엇입니까? 기본 상태, 기본 구성 일뿐입니다 SEBASTIAN WEIGAND : 그리고 잠깐 만요

따라서 귀하는 Google 고객 엔지니어입니다 당신은 소매 공간에서 일합니다 실제 고객이 있습니까? 이 같은 것을 이용하고 싶습니까? Vandelay Industries만이 아닙니다 하지만 실제로는 실제 고객이 있습니다 이런 종류의 것에 관심이 있습니까? 페르난도 산체스 : 네, 우리는 수입, 수출, 건축을합니다

우리는 실제로 3 가지 작품이있는 고객이 있습니다 그들이 이것을 사용하고 있을지도 모른다 불행히도 오늘 전화를 걸지 못했습니다 그러나 이것은 오늘 살고있다, 헤드리스 CMS 아이디어 Drupal은 headless CMS로 사용 됨으로써 두 번째 생명을 얻고 있습니다

그래서 당신은 두 세계의 장점을 누릴 수 있습니다 프론트 엔드, 당신은 자신의 프론트 엔드를로드 할 수 있습니다, API 게이트웨이를 사용하고 Drupal을 CMS로 연결하십시오 SEBASTIAN WEIGAND : 그렇다면이 모든 것이 어떻게 생겼습니까? 페르난도 산체스 : 자세히 말하면, 우리는 무엇을 가지고 있을까요? 우리가 가지고있는 것은 소프트웨어를 실행하는 많은 컨테이너입니다 그래서 소프트웨어는 오래된 프로세스이며, 우리가 수년에 걸쳐 개발 한 콘텐츠 나는 아파치와 PHP를 가지고있다

우리는 GKE에서 실행되는 컨테이너와 컨테이너에서 실행 중입니다 즉,지도에서 자동 크기 조정, 가로 포드 autoscaler는 포드를 자동 크기 조정합니다 그런 다음 클러스터 자동 확장기가 노드를 자동 크기 조정합니다 트래픽이 극대화되면 클러스터 우리가 원하는대로 위아래로 확장합니다 정적 컨텐츠는 기본적으로 파일 공유로 작성됩니다

그리고 그 파일 공유는 Kubernetes에 읽음으로써 마운트됩니다 많은, 많은 마운트를 작성하십시오 그런 다음 왼쪽 또는 왼쪽면에서 기본적으로 관리되는 MySQL 데이터베이스가 있습니다 이것이 클라우드 SQL 서비스에서 사용하는 것이 무엇인지, 우리는 단지 버튼을 누르고, 관리 받는다 Google에서 처리하는 데이터베이스 백업을 프로그래밍하면됩니다

기본적으로 그냥 놓아 줘야합니다 다른 사람이 처리했습니다 그리고 우리는 우리가 사용하는 것을 지불합니다 자동 측정 우리는 우리가 사용하는 모든 것에 대해 문자 그대로 지불합니다

그리고 나서 아래쪽 부분에 우리가하고 싶었던 것들 기본적으로 UI를 통해 클립하지 않아도됩니다 많은 명령을 보내고이 일을 전개하는 데 몇 주가 걸립니다 우리는이 모든 것을 자동화하려고했습니다 이 경우 Terraform을 사용했습니다 예를 들어, 왜 토론하고 싶습니까? 우리는 그것을 위해 Terraform을 사용했습니다

SEBASTIAN WEIGAND : 글쎄, 내 말은, 나는 밖에서 사용할 수있는 것을 사용하는 것을 좋아한다 특정 고객이 무엇이든간에 친숙하다 예를 들어, 당신이 원한다면 인프라를 제공합니다 코드 기능으로 업계에서는 Terraform이 인기가있는 경향이 있습니다

결과적으로 우리는 솔루션을 작성하기로 결정했습니다 Terraform과 몇 가지 쉘 스크립트 사용 실제로 전체 환경을 부트 스트랩합니다 Terraform은 조금 어려울 수 있습니다 그런 의미에서 일어 서서 공급자를 구성해야합니다 또한 다른 백엔드를 구성해야합니다

등등과 다른 구름으로 등등 그러나 일단 우리가 이러한 모든 것을 함께하면, 정말로 당신은 그 어떤 것도 사용할 수 있습니다 인프라를 코드로 사용합니다 Google은 의미면에서 조금 다르게 작동합니다 우리는 파트너가되고 싶습니다

다른 오픈 소스를 많이 지원하는 것처럼 기술 페르난도 산체스 : 당연하지 SEBASTIAN WEIGAND : 그래서 우리는 확실히하고 싶습니다 이미 업계에서 사용하고있는 것이 무엇이든지, 우리는 지원하고 그것은 우리의 플랫폼에서 정말 잘 실행됩니다 그러나 호환성을 보장 받기를 원한다면, SLO가 사물과 관련되기를 원한다면, 또는 사물과 관련된 SLA, Deployment Manager라는 것을 사용할 수 있습니다

우리의 인프라 버전 코드입니다 페르난도 산체스 : 좋습니다 그리고 우리가 가지고있는 것은 데모입니다 그리고 데모를 위해 우리는 당신에게 부탁을 드리고 싶습니다 너희들이 cloudlamp

org에 간다면 – 우리는 두 가지 일을하기로 결정했습니다 첫 번째 것은 모든 코드를 얻는 것입니다 우리가 이것을 위해했고 오픈 소스를 위해 그래서 우리는 기본적으로 모든 것을 웹에 넣었습니다 당신이 그것을 복제하고, 어떤 것을 찾기 위해 영감을주기 위해 사용하는 것, 나도 몰라, 거기에 몇 가지 질문을하고 우리에게 몇 가지 요청을 엽니 다

이것은 며칠 동안 이미 실행되었습니다 그리고 그런데,이게 달리고, 너를 보여주고 싶었어 이게 실행 중입니다 Terraform 스크립트를 사용합니다 그래서 너희들이 여기서 우리 레포로 간다면, GitLab으로 이동합니다

여기에 모든 코드가 있습니다 그래서 당신은 Drupal, WordPress, Drupal 또는 WordPress에서 말 그대로 모든 코드를 볼 수 있습니다 이 사이트를 만드는 데 사용됩니다 사이트는 어떻게 보이나요? Google 플랫폼입니다 우리는 매우 적절하게 cloudlamp

org라는 프로젝트를 가지고 있습니다 그리고 우리는 여기에서 모든 것을 볼 수 있습니다 지난 몇 주 동안 우리 사이트에서 일어났습니다 실제로, 우리는 지금 일어나고있는 모든 것을 볼 수 있습니다 우리는 모든 것에 대한 감사 로그를 가지고 있습니다

사람들은 [무관심한] 입장에서하고있다 또한 자동화가 자체적으로 수행되고 있음을 보여줍니다 그럼이게 어떻게 운영되는거야? Kubernetes 클러스터가 실행 중입니다 이 경우 클러스터는 세 개의 노드로 시작합니다 그리고 우리는 노드 풀을 가지고 있습니다

하중에 따라 3에서 10까지 눈금을 얻으십시오 그래서 너희들이 동시에 그것을 쳤다면 우리에 대한 서비스 거부를 시작합니다 아마 이러한 것들이 스케일링되어야합니다 제발 그만 하지마 데모 신은 정말로 화를 낼 것입니다

그러나 우리는 그것과 관련된 스토리지를 가지고 있습니다 그리고 여러분이 볼 수 있듯이, 우리는 NFS 기반의 볼륨을 생성하고 있습니다 컨테이너에 부착하는 것 어느 시점에서 YAML도 볼 수 있습니다 그런 다음 작업 부하, 특히 사이트 자체를 실행하는 작업 부하를 실행하고 있습니다

PHP와 아파치는 복제 컨트롤러이다 누군가 당신에게 왜 배치를 사용했는지 묻고있을 것입니다 우리가 모든 것을 자동화하고 싶어한다는 것이 밝혀졌습니다 끝으로 종료 우리는 그것을 위해 Terraform을 사용했습니다

Terraform이 오픈 소스 프로젝트라는 사실을 알고 계실 것입니다 공급자와 함께 운영됩니다 그래서 Terraform에서 사용할 수있는 Kubernetes 제공 업체 우리가 이것을 설정할 때 아직 배포를 지원하지 않았습니다 그래서 우리는 복제 컨트롤러를 사용하기로 결정했습니다 SEBASTIAN WEIGAND : 그 생각은 잠깐 만요

너 지금 여기서 뭘보고있어? 실제로 Kubernetes 대시 보드입니다 그것은 GCP에 내장되어 있습니다 그래서 당신이 너 자신에게 궁금해하는 경우에, 잘, Kubernetes는 달리기와 겹침 선반을 얻는 재미이다, 하지만 그 멋진 웹 UI를 실행해야합니다 그리고 어떻게 실행해야합니까? 그리고 어떻게 생겼습니까? 이것은 실제로 콘솔에 내장되어 있습니다 그러면 서비스뿐만 아니라 이 특정 클러스터에 배포 한 이 프로젝트가 액세스 할 수있는 모든 클러스터, 그것은 꽤 멋지다

이제 우리가 사용하고있는 메모리를 볼 수 있습니다 CPU, 디스크 및 다른 여러 메트릭들, 알리미, 그런 것들 FERNANDO SANCHEZ : 음 – 흠 우리가 볼 수있는 것은 여기에 꼬투리가 있다는 것입니다 컨테이너와는 다른 포드가 있습니다

우리 일을하고있는 그래서 우리는 그 상태를 공유하는 3 개의 컨테이너를 가지고 있습니다 그리고 각각의 포드에는 두 가지가 있습니다 드루팔 (Drupal) 포드가 있습니다 그리고 드루팔 (Drupal) 포드, 우리는 실제로 그것을 들여다 볼 수 있습니다 실제 드루팔 (Drupal) 포드가 어떻게 돌아가고 있는지보십시오

요청 및 물건 얻기 사람들이 그걸 때리는 것처럼 보입니다 그런 다음 Cloud SQL 프록시라고하는 다른 포드가 있습니다 Cloud SQL Proxy가 실제로하는 것은 무엇입니까 각 컨테이너간에 보안 프록시를 추가합니다 및 데이터베이스

모든 것이 중간에 암호화되어 있습니다 데이터베이스가 완전히 보호됩니다 따라서 컨테이너와 데이터베이스 간의 연결 이 컨테이너를 통해 완전히 암호화되고 프록시됩니다 그래서 우리는 주 컨테이너에 사이드카를 사용합니다 그래서 Drupal 컨테이너는 데이터베이스 127

001:3306에 있습니다 프록시가이를 안전하게 얻고 있습니다 Cloud SQL 데이터베이스에 저장합니다

SEBASTIAN WEIGAND : 흥미로운 점은? 클라우드 SQL, 관리되는 SQL 인스턴스 및 관리되는 SQL 누구나 이용할 수있는 서비스, 우리는 일종의 표준 인증을 원하지 않는다 사람들은 악용하거나 악용 할 수 있습니다 그 슬라이드에서 다시 기억한다면 우리가 관리 보안에 관해 가지고 있었던, 이것은 우리가 원하는 기능 중 하나였습니다 그래서 우리는 순서대로 더 나은 인증을 원한다 백엔드에 대한 연결을 설정할 수 있습니다

개발자가 없이도이 작업을 수행 할 수 있습니다 그런 종류의 것을 이해할 수 있습니다 페르난도가 말했듯이, 그들은 단지 3306에서 실행중인 로컬 호스트라고 생각하십니까? 그리고 그들은 모두 설정됩니다 사이드카 방식으로 배치 결국 실제로 활용할 수있는 능력이 향상됩니다 플랫폼, 복잡성을 많이 관리 그것과 관련되어 있지만, 여전히 존재의 장점을 얻는 것 막 노출 된 물건을 가질 수 없다

나머지 인터넷과 기타 등등 페르난도 산체스 : 맞습니다 그러면 Kubernetes의 서비스 측면에서 우리는 또 무엇을 가지고 있습니까? 계기반? 기본적으로 부하 분산 / 서비스 검색을 볼 수 있습니다 그것의 조각 여기에는 기본적으로 두 가지가 있습니다

우리는 확실히 Kubernetes 팬인 서비스를 제공합니다 이것은 노드 포트 서비스입니다 우리는 입구를 연결하는 데 사용 그리고 우리는 또한 입구를 만들었습니다 로드 밸런서, HTTPS에서 TPS로드 밸런서를 인스턴스화합니다

이 경우 Let 's Encrypt로 TLS 인증서를 만들었습니다 Google Cloud Load Balancer에 업로드했습니다 따라서 Google Cloud Load Balancer 그 입구에 의해 제어되는 모든 TLS를하고있다 우리를 위해 처리하고, 그것은 완전히로드 오프 우리 모든 컨테이너에서 우리가 여기에 또 뭐 할까? 분명히 이것은 결국 VM에서 실행됩니다

이 경우, 우리는 처음에는 – 이것들은 세 개의 인스턴스 또는 우리의 Kubernetes입니다 클러스터 우리는 주인을 보지 못한다는 것을 알 수 있습니다 그것은 컨트롤 플레인이 Google에 의해 처리되기 때문입니다 우리는 주인에 대해 신경 쓸 필요가 없습니다

우리는 그 (것)들을 더 크거나 더 작게하는 것을 걱정할 필요가없는 다 Google이이를 수행 할 것입니다 주인이 있는지 확인합니다 그들은 일하고 있습니다 다른 하나는 NFS 서버입니다

우리는 풀링 된 관리 솔루션을 사용했고, Filestore는 실제로 잘 알려지지 않았기 때문에 우리가이 소프트웨어를 썼을 때 하지만 이제 Cloud Filestore를 사용할 수 있습니다 그저 관리되는 버전을 만들어야합니다 저장소에 표시되는 코드 NFS 서버는 단순한 VM입니다 SEBASTIAN WEIGAND : 그리고 우리는 오픈 소스와 협력하고 있습니다

커뮤니티, 특히 Terraform에서 업데이트되고 있는지 확인하고 있습니다 실제로 Filestore 인스턴스를 설명 할 수 있습니다 Terraform 내부에서이 모든 것을 얻을 수 있습니다 미래에 자동화됩니다 주목할 중요한 점은 백엔드가 무엇이든간에 그것은 많은 사람들이 읽는 한, 많은 것을 쓰고, 그것이 실제로 무엇인지는 중요하지 않습니다

그것은 모듈 식입니다 그것은 일종의 플러그 앤 플레이입니다 그리고 Kubernetes는 상관하지 않습니다 영구 볼륨 소유권과 영구 볼륨을 부여합니다 그리고 그 디스크에있는 비트들이 이러한 컨테이너에 장착됩니다

그리고 너는 모두 준비가되어있다 페르난도 산체스 : 그래,하지만 다시, 일반적인 철학 나는이 서버에 신경 쓰고 싶지 않다 누군가 나를 위해 그것을한다면, 그것을 계속 실행하고, 나를 위해 그것을 위아래로 확장하고, 나는 단지 내가 사용하는 것에 대해 지불하면, 그것은 나보다 훨씬 낫다 NFS 서버가 작동되고 패치가 적용된다는 것 최신의 최고의 보안, 토요일에 새벽 3시에 재부팅하지 않을 것입니다 또는 그와 비슷한 것이 겠지? SEBASTIAN WEIGAND : 우리는 한 달에 13 달러를 절약 할 수 있습니다

그래도 크기를 조정하면됩니다 페르난도 산체스 : 멋지다 Google에 돈을 아낄 수 있습니다 외부 IP 주소가 있습니다 우리가 한 다른 것은 고정 IP 주소를 만드는 것입니다

정적 IP 주소를로드 밸런서에 연결 그래서 우리는 DNS를 가리킬 수 있습니다 그리고 우리가 한 다른 것은 또한 사이트의 전체 DNS 구성 제어 Google 클라우드 DNS에서 가져 왔습니다 그래서 우리는 그것을 구성 할 수 있습니다 그리고 우리는 결국 서브 존에 동의 할 수 있습니다 어떤 시점에서 다른 섹션을 추가 할 수 있습니다

우리는 수입을위한 지역을 만들 수도 있고, 수출을위한 지역을 만들 수도 있습니다 어느 시점에서 아키텍처를위한 또 다른 아키텍처입니다 마지막 부분은 Stackdriver입니다 그리고 Stackdriver는 우리를 위해 모든 모니터링을합니다 Stackdriver에 대한 많은 작업을 수행하지 않았습니다

Stackdriver 녀석들을 여기서 찾을 수있을거야 우리보다 훨씬 좋은 대시 보드가 있습니다 그러나 내가 가진 것은 간단한 가동 시간 확인입니다 클라우드 램프에 오신 것을 환영합니다 사실, 지금은 오래된 파일입니다

어쨌든, 우리는 모니터와 분명히 내 인터넷을 가지고있다 연결에 실패했습니다 그러나 그것은 거의 그것이었다 제발, 사이트를 확인하십시오 레포를 확인하십시오

그리고, 분명히,이 아이디어는 우리가 이것을 구축하고 우리가가는대로 배우는 것입니다 기본적으로 업로드됩니다 기본적으로 모든 것을 가지고 사이트 업로드하기 우리가 사이트를 유지하는 동안 우리가 찾은 백업을 어떻게 진행할 수 있을까요? 우리는 어떻게 그것을 유지하기 위해 스스로 정책을 수립 할 것인가? 실행? 바라건대 어떤 시점에서 우리는 이메일에 연결할 것입니다 사람들은 실제로 사용자 이름과 암호를 만들 수 있습니다 그런 말과 의견을 남겨주세요

하지만 다른 것은 코드가 당신이 Terraform을 어떻게 사용하는지에 관심이있는 사람이 있다면 이 모든 것을 업로드 할 수 있습니다 언제든지 사용하고 질문과 답변을 보내주십시오 SEBASTIAN WEIGAND : 슬라이드로 다시 전환 할 수 있습니까? 시원한 페르난도가 언급 한 것처럼, 우리는 거기에 갈 그것의 cloudlamp

org에 당신이 실제로 거기에 간다면, 가장 먼저 당신은 블로그 포스트와 같은 모습을 볼 수 있습니다 그것은 많은 것들을 가지고 있습니다 또는 tinyurlcom/cloudlamp를 방문하십시오

실제로 소스 레포로 바로 연결됩니다 우리가 가지고있는 것들을 살펴볼 수 있습니다 그곳에 그저 면책 조항입니다 이것은 개념의 종류의 증거입니다

나는 이전에 언급했던 것처럼 이것이 우리가 해결하는 방법입니다 페르난도 산체스 : 우리 직원들입니다 우리의 20 % 프로젝트입니다 이것이 다른 누군가가 후원한다고 믿지 마십시오

이것은 세바스찬과 나 자신입니다 그래서 두 사람에게서 오는 것처럼 보이는 것이 있다면, 그것은 두 사람에게서 나왔기 때문입니다 SEBASTIAN WEIGAND : 그것은 두 명의 남자들에게서 나왔습니다 시간제 근무자이며 정규직으로 일하고있다 사랑스러운 고객들

또한, 그것에 대해 생각하는 방식으로, 레포를 한 번 살펴보고, 오, 그게 그랬어 왜 그 구성 요소가 흥미로운 지 알 겠어 그리고 나서 당신은 그 개념을 취할 수 있습니다 자신의 CI / CD 워크 플로우에서 구현하십시오 우리는 CI / CD 도구를 제공하지 않습니다

이 레포가가는 한 우리는 우리 플랫폼에서 어떤 것을 가지고 있습니다 그러나 그것은 또 다른 이야기입니다 그래서 – FERNANDO SANCHEZ : 그게 전부입니다 소프트웨어 Q & A가 있습니다

감사합니다 와 주셔서 너무 많이 그리고, 네, 질문을 위해 열어보십시오 [박수 갈채] [음악 재생]

Understanding UTF8 – PHP Standard and Practices Part 7

인터넷상의 대부분의 텍스트는 특정 종류의 문자 집합에서 찾을 수있는 특수 비트 모음입니다 요즘 문자 집합은 유니 코드 전송 형식을 나타내는 utf-8 일 것입니다 a는 조금 다른 방식으로 물건을 저장하는 다른 유형의 UTF 문자 세트와 구별하는 것입니다 지난 10 년 동안 Utf-8은 가장 인기있는 문자 인코딩으로 다른 문자 세트에서 이어 받아 거의 모든 것에 적합 할 수 있습니다

텍스트로 삽입하려는 문자 utf-8은 국제 문자 기호 및 이모티콘과 같은 모든 유니 코드 문자를 처리 할 수 ​​있습니다 멋진 지원 여부 이모티콘은 Zed 범위를 벗어난 기본 문자 외의 다른 문자를 지원하지 않는 사용자에게 중요합니다 응용 프로그램이 미국이나 영국과 같은 어딘가에서 실행 되더라도 많은 사람들이 이름에 특수 문자가 있으며 악센트 부호가있는 문자 및 키릴 문자와 같은 것을 지원하려면 utf-8이 필요합니다 PHP는 utf-8 컨텐츠와 함께 작동하며 더 쉽게 사용할 수있는 더 많은 기능을 제공합니다 그러나 그 기능의 상당 부분은 MB가 아닌 기본 확장자로 숨겨져 있습니다

우리가 MB 문자열로 작업하기 전에 문자열 사용하도록 설정해야합니다 인덱스 도트 PHP를 열어 보겠습니다에 3 행 우리는 핵심 함수 인 PHP info를 호출합니다이 함수는 설치 및 사용 가능에 대한 정보를 포함하여 모든 종류의 유용한 정보를 화면에 출력합니다 모듈들 exit 문에 대해 온라인 상태로 스크립트의 전체 실행에 사용되고 있으며이 코드의 나머지 부분은 실행되지 않습니다 우리는 잠깐 후에 그것을 얻을 것입니다 눈 아이콘을 클릭하여 스크립트를 미리보고 PHP 정보가 우리에게 보여주는 것을 보자

브라우저에서 찾기 기능을 사용하는 경우 NB 문자열을 입력 할 수 있습니다 이 첫번째 부분은 아닙니다 이것은 우리가 여기에서보고 싶은 것입니다 MB 문자열 섹션이 누락되었거나 사용 중지 된 경우 사용하도록 설정해야하지만 다행스럽게도 우리에게 적합합니다

작업 공간에서 항상 활성화됩니다 작업 영역으로 돌아가서 3 ~ 4 행을 제거하고이 코드의 나머지 부분을 Line 6 우리는 MB internal encoding이라는 함수를 호출합니다 우리는 우리의 인코딩의 이름을 가진 문자열 인수를 전달합니다이 경우 인코딩은 utf-8입니다

이렇게하면 MB 문자열 확장자에서 어떤 문자 인코딩을 알 수 있습니다 7 호선에서 작업하고 싶습니다 MB라는 함수를 호출합니다 HTT 출력 및 다시 한 번 utf-8을 포함하는 인수로 문자열을 전달합니다이 작은 MB 문자열은 HTML이 utf-8로 출력된다는 것을 알고 있습니다

이 두 줄은 지나친 것처럼 보일 수 있습니다 하지만 utf-8 행 9로 작업 할 때 string에 대한 문자열 변수 인 경우에 편리합니다 ASCII로 존재하지 않지만 여기 11 행의 utf-8에 존재하는 악센트 부호가있는 문자로 가득합니다 헤더 함수를 사용하여 HTTP 헤더를 수동으로 설정합니다 헤더는 이름과 값으로 콜론과 이 경우 콘텐츠 유형을 텍스트 HTML로 설정합니다

어쨌든 그것은 기본 헤더입니다 그러나 여기에 커서 utf-8을 설정하여 추가 속성을 추가하고 있습니다 우리는 HTML을 따르는 브라우저를 브라우저에 알려주고 있습니다 이것은 utf-8이 될 것입니다 – 마지막으로 제목과 본문이있는 기본 HTML 페이지를 출력합니다 여기에는 두 개의 단락이 포함되어 있습니다

첫 번째 단락은 문자열의 대문자 버전을 출력하고 두 번째 단락은 문자열의 길이를 출력합니다 브라우저를 새로 고침하고 새로 고침 할 때 어떤 일이 일어나는지 보도록하겠습니다 이제이 결과는 PHP가 문자열을 대문자로 만들려고 최선을 다하고있는 약간 재미 있습니다 그러나 유니 코드가 아닌 문자의 경우 만 변경할 수 있습니다 이 문자열의 길이를 물어 보면 유니 코드 문자는 PHP를 혼란스럽게 만들 것이고 실제 문자열보다 더 긴 문자열로 생각할 것입니다 실제로이 문자열은 PHP가 생각하는 인간의 36 문자 길이입니다

우리는 mb 확장 함수를 사용하여 이것을 아주 쉽게 고칠 수있다 여기서해야 할 일은 앞에 mb를 추가하는 것뿐입니다 그리고 거기에 우리가 간다 지금 정확하게 36 문자이고 모든 문자가 ASCII 문자뿐만 아니라 대문자입니다 거의 모든 핵심 문자열 함수에 대해 mb 문자열 교체 기능이 있으므로 앞에 mb를 눌러보십시오

그러면 작동합니다 이렇게하면 PHP에서 utf-8로 작업하게됩니다 하지만 일단 데이터베이스와 상호 작용을 시작하면 utf-8로 설정해야합니다 PHP가 어떻게 작동하는지 조금씩 볼 수있는 올바른 방법을 방문하십시오 다음 단계로 넘어 갑시다

New iPhone revealed TOMORROW : Release, UK price, specs and what Apple fans should know | Tech News

APPLE은 차세대 iPhone을 선보일 예정이며, 여기에 필요한 모든 것이 있습니다 이 블록버스터 출시에 대해 알고 있습니다

미국 기술 회사가 새로운 범위를 밝혀내는 가운데 모든 눈이 내일 애플에있을 예정이다 아이폰 이것은 공개 될 가능성이있는 많은 장치를 가진 또 다른 거대한 발표가 될 것으로 예상된다 쿠퍼 티노의 스티브 잡스 극장에서 iPhone 업그레이드와 함께 많은 놀라움이있을 수 있습니다

따라서 Apple 브랜드에 대한 열렬한 팬이라면 무엇을 알 필요가 있습니까? 애플의 9 월 대규모 출시 행사에서 공개 될 수있다 Apple은 올해 스티브 잡스 극장에서 iPhone 이벤트를 개최합니다 쿠퍼 티노에있는 자사의 애플 파크 본사를 근거로 지난 달 말에 초대장을 "Gather round"라는 문구로 언론에 보냈습니다 영국 시간 10시 현지 시간으로 진행될 예정이며 영국에서 시청할 수 있습니다 6pm BST

내일 애플이 밝힐 공식적인 소식은 없지만 소문과 누출 앞으로 올 일에 대해 아주 좋은 그림을 그린다 우리는 미국의 기술 회사가 더 큰 65 인치 Xs Plus 모델과 인상적인 사양은 없지만 싼 가격 애플은 수상 경력이있는 아이폰 X를 더 나은 성능, 더 나은 상태로 리프레시 할 가능성이있다 카메라 및 모든 예상 빠른 충전

진한 빨간색과 파란색을 포함하여 새로운 색상이 드러날 수도 있습니다 Macerkpof의 새로운 보고서 Apple의 차기 가격 책정에 익숙한 사람들을 인용 모델은 싼 아이폰 모델이 £ 71359에 올 수 있다고 말했다 한편 아이폰 X는 811

84 파운드에서 시작될 것이고 아이폰 엑스 맥스는 소매상이 될 것이라고 덧붙였다 102618 파운드 9to5Mac이 처음 발견 한이 기사는 아마도 하드웨어의 각 조각 즉, 스토리지 용량이 늘어난 변형 제품의 경우 비용이 증가 할 수 있습니다 그러나 Macerkpof가 그것의 근원이 믿을 수 있고 정확했다는 것을 주장 했더라도 이전 iPhones의 비용, 그것은 소금의 꼬집음과 같은 주장을 복용 가치가 여전히 있습니다

Introduction to ReactPHP and asynchronous PHP

자주 비동기 PHP에 대해 이야기 할 때 사람들은 PHP가 이런 종류의 작업에 적합한 도구가 아니라고 말했습니다 우리는 이미 Go 및 NodeJS를 사용하여 PHP 대신 사용하십시오

물론, 당신은 자유 롭습니다 비동기식 해결을 위해 잘 알려진 다른 언어를 사용하십시오 하지만 개발자로서 언어 자체가 케이스 하나 이상의 언어를 스택에 추가하려면 모든 종속성을 설정해야합니다 이 새로운 언어에 맞는 배포 시스템과 전체 생태계를 구성하십시오

이미 PHP 팀과 일하면서 새로운 것을 파헤치는 것이 훨씬 쉬울 것입니다 새 언어로 스택을 확장하는 대신 라이브러리를 사용하십시오 확실히 PHP가 비동기 작업을 해결하기 위해 만들어지지 않았다는 것은 사실입니다 더 많은 목표 대규모의 복잡한 시스템을 구축하는 데 사용할 수있는 프로그래밍 언어가 아니 었습니다 문제가 발생했을 때 자바 스크립트가없고 비동기적인 내용도 없었습니다

이제 완전히 다른 PHP를 사용하게되었습니다 대규모 복합 단지를 구축하기위한 프레임 워크가 있습니다 응용 프로그램과 PHP는 더 이상 요청 응답주기로 제한되지 않습니다 라이브 스트리밍, 다른 API, 다른 클라이언트와의 통합 장수명 콘솔 명령 및 직원이 작업해야하는 요구 사항 매우 빠릅니다 전통적인 동기식 환경에서 프로그램이 하나씩 실행됩니다

우리는 하나의 작업을 시작한 다음 작업이 완료 될 때까지 기다립니다 그때 만 다른 작업을 시작할 수 있습니다 상상하고 예측하기 쉽습니다 그러한 프로그램의 결과 요청 응답주기의 경우이 모델이 작동 할 수 있습니다

좋지만 복잡한 작업에 대해서는 동기식 접근 방식이 약간의 불편을 낳을 수 있습니다 세 가지 다른 데이터 소스와의 통합이 있다고 가정 해 보겠습니다 우리는 그들로부터 데이터를 수집하고,이 데이터를 처리하며 고객에게 돌아갑니다 에서 기존의 동기식 환경에서는 각 소스를 하나씩 요청하고 각각의 응답 시간은 1 초에서 3 초까지 걸립니다 데이터를 수집하기 위해 최소한 3 초를 기다려야합니다

에 비동기로 작업 할 때 우리는 하나의 요청을 기다리는 데 시간을 낭비하지 않습니다 다른 사람들을 시작하기 위해 완료되어야합니다 우리는 이러한 요청을 하나씩 시작합니다 그런 다음 나중에 작업을 마친 후 결과를 수집하기 위해 다시 방문합니다 모든 요청을 기다리는 대신 가장 느린 요청 만 기다려야합니다

그들 여기서 주요 아이디어는 계산이 엄청나게 빠릅니다 I / O와 비교 이는 API의 응답을 기다리는 동안, 데이터베이스 또는 파일 시스템에서 CPU가 수행하는 작업은 없습니다 뭔가하는 대신 유용한 비동기 방식은 논 블로킹 I / O의 아이디어를 사용합니다

우리는 시작한다 비 블로킹 작업이 완료 될 때까지 기다리지 않고 수행 할 수 있습니다 한 번 뭔가 재미있는 일은 우리가 그것에 반응 할 수 있다는 것입니다 우리는 무언가가 있음을 어떻게 알 수 있습니까? 일어난? 그 일이 끝났다고? 그 대답은 "사건들"입니다 이것은 우리가 "이벤트 중심 아키텍처"를 호출하십시오 우리는 특정 사건을 경청하고 그들이 일어날 때 우리는 그들에게 반응하라

우리의 경우 우리는 하나의 스레드에서 실행되는 PHP를 처리합니다 이벤트 큐가 필요한 비동기 프로그램을 만들 수 있어야합니다 이 대기열은 모든 비동기 응용 프로그램의 핵심입니다 우리가 이벤트 루프라고 부르는 것입니다 언제 새 이벤트가 발생하여 대기열에 추가됩니다

다음에 프로그램을 만들 때 thread는, 큐로부터 최초의 이벤트를 취해 아무것도 처리하지 않고, 적절한 이벤트 핸들러 핸들러가 완료되면 쓰레드는 다음으로 돌아 간다 대기열에 있으며 대기 중일 때 발생할 수있는 새 이벤트를 취합니다 그리고 모든 것이 무한 루프에서 발생합니다 어느 순간에 비동기 스레드는 두 가지 모드 중 하나 일 수 있습니다 : "디스패처 모드"와 다음에 처리해야하는 이벤트와 "처리기 모드"를 적절한 이벤트 핸들러

그러나 우리 코드를 제외한 모든 것은 병렬로 실행됩니다 우리의 이벤트 핸들러는 하나씩 실행됩니다 "비동기"는 "병렬"을 의미하지 않습니다 프로그램은 여러 개의 비 블로킹 작업을 시작하기 때문에 더 빠르게 실행됩니다 그들이 끝날 때까지 기다릴 필요가 없습니다

대신 우리는 언제 통보를 받습니까? 재미있는 일이 일어난다 예를 들어, 응답이 수신되고, 파일이 쓰여지고 나서 우리는에 반응 할 수있다 이번 행사 이제 PHP에 대해 이야기 해 보겠습니다 PHP에는 네이티브 도구가 없습니다

비동기 코드를 작성하십시오 우리는 낮은 수준의 물건을 가지고 있지만 그러한 것들은 없습니다 "이벤트 루프", "스트림"및 "약속"과 같은 높은 수준의 추상화 그래서 그러한 reactPHP와 같은 도구가 존재합니다 ReactPHP는 프레임 워크가 아닙니다

그것은 일련의 비동기 PHP를 작성하는 데 사용할 수있는 다양한 구성 요소 모든 구성 요소 PHP로 작성되었습니다 추가 확장 프로그램을 설치할 필요가 없습니다 ReactPHP로 작성된 비동기 코드는 JavaScript와 매우 유사합니다 자주 유일한 차이점은 PHP에서 이벤트 루프가 실행되지 않는다는 것입니다

장면 따라서 명시 적으로 생성하고 실행하는 것이 우리의 임무입니다 예를 들어, 여기에 매우 간단한 JavaScript 코드 : setTimeout () 함수로 일부 실행을 지연합니다 ReactPHP에서 "hello world"와 같은 코드를 출력 할 것입니다 이렇게 생겼어

해당 항목의 생성 및 실행을 제거하십시오 우리는 자바 스크립트에서 가지고있는 것과 거의 같은 코드를 얻는다 ReactPHP에서 비동기 프로세스의 결과를 얻으려면 약속의 개념입니다 나는 우리 중 대부분이 이미 자바 스크립트 세계 약속은 처음에는 알 수없는 자리 표시 자입니다

결과 우리는 수행하는데 약간의 시간이 필요한 작업이 있습니다 이 작업은에 대한 일부 값을 반환 할 수 있습니다 실패 할 수 있습니다 이 작업은 비동기 적으로 실행되므로 즉시 반환 값에 대한 액세스 대신 자리 표시자를 얻은 다음 정의합니다

이 자리 표시자를 실제 가치로 대체하면 어떤 행동을 취하십시오 이는 약속이 세 가지 별개의 상태에있을 수 있음을 의미합니다 이 약속을 되 돌린 연기 된 절차에 따라 "보류 중"상태 프로세스가 아직 실행 중임을 나타냅니다 "이행 됨"은 프로세스가 완료되었음을 의미하며 "거부 됨"은 프로세스가 실패했음을 의미합니다

소비자의 경우 코드는 수행원 약속을 통해 선언적 방식으로 코드를 작성할 수 있습니다 우리는 선언한다 일단 우리가 결과를 얻으면 우리는 어떤 행동을 취합니다 방법 then () 두 개의 인수를받습니다

첫 번째 콜백은 지연된 프로세스가 성공적으로 완료되면 두 번째 프로세스가 실패합니다 우리는 또한 체인 수 있습니다 결과를 처리하기 위해 다른 콜백을 제공합니다 예를 들어, 지연된 프로세스의 결과는 1이고, 우리는 2로 곱하고, 2를 전달합니다 두 번째 콜백에 인수로

다시 우리는 그것을 2 배로 곱한 다음 4 장 인쇄 스트림은 JavaScript에서와 똑같이 보입니다 그들은 우리가 많은 양의 데이터를 청크별로 처리합니다 예를 들어 우리가 몇 기가 바이트 크기의 큰 로그 파일을로드 할 필요가 없습니다 모든 것을 기억으로

대신 스트림을 통해이 파일을 읽을 수 있습니다 새로운 데이터 덩어리가 준비 될 때마다 알림을받습니다 로그의 경우 그것은 읽을 수있는 스트림 파일입니다 서버에 파일을 업로드하는 경우 디스크에 계속 기록하면 쓰기 가능한 스트림이됩니다 소켓 연결 판독 가능하고 기입 가능한 양방향 스트림은 양방향 스트림으로 표현 될 수있다

Streams API는 NodeJS와 매우 유사하게 보입니다 스트림에 무엇인가 쓸 수 있습니다 우리는 특정 사건을들을 수 있습니다 스트림 또한 이벤트 미터입니다 뭔가 흥미로운 것이 내부에서 일어나고, 그 물줄기는 그것에 반응 할 수 있습니다

예를 들어 우리는 "데이터"이벤트에 이벤트 핸들러를 추가 할 수 있습니다 '데이터'이벤트는 매번 발생합니다 읽을 수있는 스트림에는 읽을 수있는 새로운 데이터 청크가 있습니다 '닫기'이벤트는 스트림이 닫힐 때 발생합니다 예를 들어 전체 파일을 읽었습니다

이것들은 기본적인 저수준 추상화, 비동기 암호 ReactPHP 생태계는 또한 많은 다른 고급 구성 요소를 제공합니다 여기에는 저장소, 네트워크 통신, 대기열, 비동기 캐시 및 로그, 다른 스트림 등이 있습니다 코드 이전에 말했듯이 작성된 ReactPHP는 NodeJS와 매우 유사합니다 다음은 매우 간단합니다

모든 문자열에 대해 "hello world"라는 200 개의 응답을 반환하는 웹 서버 들어오는 요청 왼쪽에는 NodeJS 버전이 있으며 ReactPHP는 오른쪽으로 서버를 만들고 지정된 포트에 소켓을 연 다음 서버를 소켓에 연결하고 루프를 실행하십시오 매우 간단한 비동기 웹 서버 PHP로 작성되었습니다 NodeJS 버전과의 유일한 차이점은 우리가 명시 적으로 이벤트 루프를 작성하고 실행하십시오

나머지 코드는 같은 NodeJS로 작성된 비동기 코드가 그것보다 PHP 버전의 코드가 더 깨끗합니다 을 활용하려면 ReactPHP를 사용하면 애플리케이션을 처음부터 다시 작성할 필요가 없습니다 예를 들어 우리는 몇 가지 응용 프로그램을 가지고 컨트롤러에서 우리는 두 다른 출처 그런 다음이 데이터를 수집하고 페이지를 렌더링합니다

우리는 다시 쓸 수 있습니다 이 코드의 유일한 병목 부분 : 동기 HTTP 요청 우리는 이벤트 루프 그런 다음 약속을 반환하는 두 가지 요청을 보낸 다음이 때까지 기다립니다 해결하겠다는 약속

데이터를 수집하고 동기식 흐름을 계속합니다 우리 비동기 적으로 데이터를 수신하지만 페이지를 동 기적으로 렌더링합니다 만약 모든 것이 너무 좋아 보이기 때문에 모든 응용 프로그램을 작성해야합니다 비동기식으로? 그러나 위대한 힘으로 큰 책임이 있습니다 제일 어려운 문제는 통화를 차단하는 것입니다

우리의 코드는 단일 위협, 즉 장기 실행 작업이 전체 루프를 차단합니다 이벤트 루프가 지속적으로 실행되어야합니다 새로운 사건을 경청하고 그들에게 손을 대지 마라 하나의 처리기가 너무 오래 실행되어 나머지 응용 프로그램이 대기합니다 불행히도 대부분의 네이티브 함수와 타사 라이브러리는 처음에는 전통적인 동기 런타임에서 작동하도록 작성되었으며 흐름

모든 네트워크 통신이 루프를 차단할 수 있습니다 요청이 진행되는 동안 우리는 기다렸다 이것이 PDO와 모든 라이브러리를 사용할 수없는 이유입니다 그것 위에 세웠다 PDO는 네트워크 요청을 사용합니다 대신 우리는 스트림 기반 고객

file_exists ()와 같은 모든 기존 파일 시스템 함수를 사용할 수는 없습니다 또는 file_get_contents () 대신 특수 비동기 어댑터를 사용해야합니다 또한 타사 라이브러리를 사용할 때 어떤 기능이 중요한지 알아야합니다 내부에서 사용됩니다

루프를 차단할 수 있는지 여부 비동기 코드에서 통화 차단을 대체하는 대신 다음 규칙을 사용할 수 있습니다 우리가 약속을 사용하는 단일 한 가치를받습니다 우리가 어떤 사람들과 일할 때 스트림을 사용하는 일부 데이터를 지속적으로 푸시하거나 수신하는 API입니다 언제 완전히 비동기식 애플리케이션 작성하기 우리가 직면 할 수있는 문제들

사람들은 종종 PHP에서 불평합니다 어 메모리 누수가 발생합니다 우리는 정말 멋진 최신 버전의 모든 첫 번째 가비지 컬렉터 및 메모리가 누출되지 않습니다 그리고 그것도 문제가 아닙니다 PHP

NodeJS에서 동일한 메모리 문제가 발생할 수 있습니다 긴 메모리 관리 살아있는 프로세스는 개발자의 책임입니다 그것은 당신의 직업입니다 개발자는 메모리를 최적화, 축소 및 제거 할 수 있습니다 장기 실행 스크립트에서 데이터베이스 연결은 시간 종료로 닫힐 수 있습니다

당신은 일종의 구현해야합니다 필요한 경우 점검하고 다시 연결하십시오 오류에 특별한주의를 기울이십시오 손질 전통적으로 각 클라이언트마다 별도의 스레드가 있습니다

와 새로운 요청이있을 때마다 우리는 전체 애플리케이션을 부트 스트랩하고 일부를 실행한다 코드 어떤 것이 실패하면 현재 요청에만 영향을 미칩니다 다른 모든 연결 가능하게 살아있어 비동기 서버로 무언가가 실패 할 때 응용 프로그램이 충돌하고 모든 클라이언트의 연결이 끊어집니다 왜냐하면 비동기 적으로 발생하면 유동의 거동을 예측하기가 어렵습니다

그리고 물론 die () calll을 사용하면 전체 응용 프로그램에서 var_dump () 및 die 중지하면 모든 클라이언트 또는 프로세스가 파괴됩니다 그리고 그 모든 것을 기억하십시오 동기식 응용 프로그램의 클라이언트 또는 프로세스에 일부 공유 전역이 있습니다 상태 그리고 그들은 같은 기억을 공유합니다

따라서 비동기 PHP가 존재하며 라이브입니다 네트워크 통신인지 또는 네트워크 통신인지 여부를 일부 I / O 기다리는 경우 파일 시스템을 차단하고 방해하는 경우 ReactPHP 사용을 고려하십시오 비동기식 접근 방식이 크게 향상 될 수 있습니다 PHP는 당신은 그것에 대해 생각하곤했습니다 스택을 복잡하게 만들 필요가 없습니다

다른 언어로 비동기 작업을 해결할 수 있습니다 아마도 PHP가 할 수 있습니다 쉽게 다룰 수 있습니다 그리고 ReactPHP는 비동기 코드를 작성하는 데 도움을 줄 수 있습니다 그곳에 마법과 관련이 없으며 추가적인 확장이 필요하지 않습니다

그러나 기대하지 마라 ReactPHP를 프로젝트에 추가하면 모든 것이 작동하기 시작합니다 2 배 빠릅니다 이런 식으로 작동하지 않습니다 모든 것을 얻으려면 비동기 코드의 전체 개념을 이해해야합니다

그것으로부터 이익을 얻습니다

06 How to Get and Set Variables Data Type in PHP – PHP & MySQL Tutorial in Urdu (Basic to Advance)

이 비디오에서는 데이터 유형에 대해 설명합니다 데이터에는 여러 유형이 있습니다

처럼 숫자 (0, 1, 2, 3) 숫자라고합니다 알파벳 (a, b, c, d) 알파벳이라고합니다 변수를 만들 때 데이터 유형을 설정해야합니다

일부 프로그래밍 언어에서는 변수 데이터 유형을 설정해야하지만 PHP는 매우 쉬운 언어이며, 자체적으로 설정됩니다 데이터 유형은 4 ~ 5 개입니다 1 정수 : 5, 10, 500과 같은 정수입니다 2

Double : 10245와 같은 부동 숫자입니다 3 문자열 : 파키스탄과 같은 알파벳 조합입니다 부울 : 두 값인 true 또는 false를가집니다

5 객체 : 배열과 함수의 조합입니다 6 배열 : 변수의 조합입니다 7

Null : 할당되지 않은 변수 이제 나머지 5 가지 데이터 유형 만 다른 비디오를 설명 할 것입니다 텍스트 편집기를 엽니 다 값없이 test_variable을 작성하십시오 변수 선언이라고합니다

그 후 나는 무언가를 적어서 그 종류를 원합니다 그래서 gettype () 함수를 사용합니다 그 후 나는 줄 바꿈을 사용한다 세 줄이 복사되었습니다 그 후에 변수의 값을 할당합니다

이 줄을 세 번 더 복사했습니다 그 변경 후 세 번째 변수의 값 그것은 String입니다 그리고 4 번째 변수 값은 Double입니다 그리고 다섯 번째 변수 값은 부울입니다 확인 여기 브라우저에서 모든 값은 Null입니다

그것은 오류입니다, 나는 그것을 확인합니다 죄송합니다 맞춤법 오류입니다 문제 없어 변경 후 다시 확인하십시오 이제 봐봐 첫 번째 데이터 형식은 Null입니다

두 번째는 정수입니다 세 번째는 문자열입니다 넷째는 두 배입니다 다섯째는 부울입니다 이 목적을 위해 gettype 함수를 사용했습니다

Gettype 함수는 모든 변수 유형을 가져 오는 데 사용됩니다 변수의 유형을 설정하려는 경우 그래서 우리는 settype 함수를 사용한다 여기 settype 함수의 예제를 볼 수 있습니다 변수를 만들고 정수에 값을 할당하십시오 우선 나는 그것의 유형을 얻을 것이다

그 후 settype 함수를 사용하여 그 유형을 설정합니다 Settype 함수는 괄호 안에 두 개의 값을가집니다 첫 번째 변수는 가변적이며 두 번째는 유형입니다 그 후에 다시 그 유형을 점검 할 것입니다 브라우저로 가서 페이지를 새로 고침하십시오

당신은 볼 수 있습니다, 첫 번째 라인에서 데이터 유형은 정수입니다 하지만 두 번째 줄에서 그 타입은 문자열입니다 실제로 데이터는 정수형이지만 유형이 정수에서 문자열로 변경됩니다 승인 내 생각에,이 비디오는 오랫동안 지속되어 왔고, 두 번째 비디오에서 데이터 유형을 가져오고 설정하는 두 번째 방법을 알려 드리겠습니다 캐스팅에 대해 이야기합니다

#1 CodeIgniter 3.x Restful API Library – Setup and Install the CodeIgniter API Library

Video Description에는 Codeigniter API Library Link가 있습니다 먼저 codeigniter 프레임 워크를 다운로드하고 로컬 서버에 설정합니다

이제 xampp과 같은 로컬 서버를 시작하십시오 브라우저에서 로컬 호스트 열기 이 편집기에서 프로젝트를 엽니 다 자, codeigniter 홈페이지를 이렇게 편집하십시오 그런 다음 codeigniter api 라이브러리를 다운로드하고 프로젝트 폴더에 설정합니다 이 파일은 프로젝트에 붙여 넣어야하는 파일의 이름입니다

이 파일들 [API Library Files]을 프로젝트로 이동합시다 라이브러리를 설정 한 후 프로젝트에 API 컨트롤러를 만듭니다 API 데모 컨트롤러로 이동하여 일부 코드를 복사하십시오 이렇게 프로젝트 API 컨트롤러에 붙여 넣습니다 이처럼 새로운 API 함수를 만든다

브라우저에서이 API를 실행하십시오 컨트롤러 이름 변경 URL에 indexphp를 추가하십시오 API 실행 이 메소드는 기본적으로`GET` 요청을 지원합니다 이 함수의`methods` 매개 변수를 통해 API의 요청 유형을 정의 할 수 있습니다

How to install Composer on Windows and XAMPP and use with command prompt.

안녕하십니까, [이름이 바뀌 었습니다] 이것은 Burhan Shah와

이 비디오 시리즈에서는 작곡가 설치 방법을 보여 드리겠습니다 로컬 Windows 컴퓨터에서 나는 비디오 시리즈에 대해 많은 사람들이 묻는 것을 보았다 창문 용 작곡가 Windows에서 작곡가를 설치하는 방법, 그것을 사용하는 방법 창문에, 그리고 어쩌구 저쩌구 어

네 youtube 끝났다 나는 아주 적은 수의 비디오를 보았다 그 것처럼 보이기 그래서 나는 결정했다

같은 비디오 시리즈를 시작하십시오 이 동영상 시리즈에서는 설정 방법을 알려 드리겠습니다 그런 다음 방법 의존성을 불러오는 데 사용하십시오 그 밖의 모든 것 그래서 우리가 시작하기 전에, 어

우리가해야 할 일은, 명령 프롬프트를 실행하게한다 자, 만약 네가 봤다면 Mac 및 Linux 용 작곡가 비디오 너는 그들에게 물건을하는 걸 보았을지도 모른다 터미널과 모두를 통해 여기에 터미널이 없어서 명령 프롬프트 및 ummm 명령 프롬프트에서 모든 것을하기 위해서 우리가 필요로하는 것이 두 가지있다 우리는 PHP를 인식하기 위해 명령 프롬프트가 필요합니다 그리고 다시, 우리는 작곡가를 인정할 필요가 있습니다

이 비디오가 끝날 때까지 작곡가 파트를 다룰 예정입니다 내가 PHP에 대해 지금 보여줄 거라고 보여줘 그래서 어 명령 프롬프트에서 PHP를 인식하면 php -v를 입력하십시오 이것은 대개 어를 제공합니다

php가 설치된 버전 하지만 여기서 볼 수 있습니다 PHP가 인식되지 않는다고합니다 내부 또는 외부 명령으로 그것은 PHP를 전혀 인식하지 못합니다 그래서 우리는 명령 프롬프트가 필요합니다 그것을 인식하기 때문에 우리가 할 일은 어, 우리가 할 일은, 환경 변수를 설정한다

우리가 그렇게하기 전에, 당신은 분명히 당신의 시스템에 설치된 PHP 그래서 어 네가 벌써 가지고 있다고 생각할거야 나는 그냥 가서 할거야 으음 C로 갈 수 있습니다 : 여기 나는 어쩌면 xampp을 설치했고 나는 그 php 폴더를 찾아 볼 것이다

그래서 나는 그 폴더로 갈거야 PHP 실행 파일이 들어 있습니다 일반적으로 대부분은 이 PHP 폴더에 내가 내려 간다면, 그리고 그 권리는 여기에있다 그래서 우리는이 길을 사용할거야 과 [목을 가다듬 다] 그리고 우리 시스템에 추가 할거야

우리는 그것을 시스템 변수에 추가 할 것입니다 그럼 우리가 할 일은 제어반으로 가라 시스템을 클릭하십시오 나는 창 10에있다 다른 창문에 있다면 7 번 또는 8 번 단계는 매우 일반적이다

그래서 당신은 윈도우 OS에서 당신을 따라갈 수 있습니다 그래서 당신이 시스템을 클릭하면, 사전 시스템 설정을 클릭하십시오 환경 변수를 클릭하십시오 PATH 시스템 변수를 찾습니다 그래서 당신은 당신의 길을 볼 수 있습니다

이 변수를 여기에 추가하면됩니다 확인을 클릭하고 우리는 가서 좋다 확인을 클릭하고 명령 프롬프트를 다시 열 수 있습니다 그리고 명령 프롬프트를 다시 열 수있게합니다 그리고 php -v를 입력하십시오

그것이 우리에게 버전을 주면 그것은 PHP가 인식되는 것을 의미합니다 그렇지 않다면 우리는 뭔가 잘못했다 조회수를 입력하고 보시다시피, 우리는 PHP 버전을 얻습니다 그 밖의 모든 것 그것의 의미는 PHP가 인식되고 명령 프롬프트 우리는 명령 프롬프트를 통해 PHP를 사용할 수 있습니다 그래서 우리가 뭘 할거야? 다음은 현재 종료합니다 과 가자

getcomposerorg oopsi 수 있습니다 내 네트워크가 꺼져있다 그래서 우리가 할 일은 getcomposerorg에 갈 것입니다 좋아요, 이제 작동해야합니다

composerorg를 만들 수 있습니다 여기에서 다운로드를 클릭하십시오 composer-setupexe를 클릭하십시오

우리를위한 설정을 다운로드합니다 과 우리는 이것을 클릭 할 것이다 괜찮아 작곡가를 설치하려면이 버튼을 클릭하십시오 우리는 이것을 클릭 할 것이다

작곡가는 괜찮아 질거야 작곡가를 설치하려면이 버튼을 클릭하십시오 괜찮아 작곡가를 설치하려면이 버튼을 클릭하십시오 여기에있는 다음을 클릭하십시오

이제는 PHP 경로의 위치를 ​​알려줍니다 내 시스템에 여러 버전의 PHP가 설치되어있다 그래서 그것은 나에게 다른 위치를 준다 나 지금 이걸로 갈거야 다음을 클릭하십시오

다시 다음을 클릭하십시오 우리가 이전에 선택한 PHP 버전을 제공합니다 및 위치 설치를 클릭하십시오 이 후에 특별히 아무 것도하지 않아도됩니다 기본적으로 정당하다

여기에서 composerphar 파일을 다운로드하십시오 그런 다음 올바른 디렉토리에 배치합니다 그리고 나서 작곡가를위한 시스템 변수를 추가합니다 방금 본 경로에서

마침을 클릭하고 그것을 테스트하기 위해 명령 프롬프트로 다시 간다 그냥 작곡가를 입력하고 작곡가 -V 이제 V는 여기에서 대문자입니다 PHP는 작은 (소문자) 그래서 내가 입력을 누르면, 그것이 나에게 버전을 준다면 작곡가가 성공적으로 설치되었음을 의미합니다 그렇기 때문에 우리는 좋다 이제 이걸 보지 못한다면 인식 할 수없는 명령 오류가 발생합니다

그건 네가 잘못한 것을 의미한다 몇 걸음 만 가면 따라갈 수 있습니다 그리고 잘하면 내가 착륙 한 곳으로 갈 것입니다 그리고 당신은 당신의 PHP 프로젝트에서 작곡가를 사용할 준비가 될 것입니다 그래서 다음 비디오에서는 작곡가를 사용하는 방법을 보여 드리겠습니다

의존성을 가져오고 명령 프롬프트를 사용하여 모두 가져옴 다른 비디오에서 보자 고맙습니다!