OOP 개념이란 무엇입니까? Crud 작업을 어떻게 만들 수 있습니까?
게시 됨: 2022-04-28모든 개발자는 경력 중 한 번쯤은 객체 지향 프로그래밍(OOP)을 사용해 본 적이 있으며 이는 기본적인 프로그래밍 패러다임으로 간주됩니다. OOP를 사용할 때 주요 목표는 데이터와 이에 대한 작업을 수행하는 기능을 함께 안전하게 바인딩하여 코드의 다른 부분이 해당 정보에 액세스하지 못하도록 방지하는 것입니다.

이 블로그에서는 oop 개념의 원리와 웹 개발에서 잘 알려진 laravel로 crud 연산을 만드는 방법을 설명합니다.
OOP가 무엇인가요?
객체 지향 프로그래밍 시스템(OOP)은 직원, 자동차, 은행 계좌 등과 같은 실제 객체를 중심으로 애플리케이션을 모델링하는 소프트웨어 개발 접근 방식입니다.
Java의 일반적인 OOP 개념 중 두 가지는 클래스와 객체입니다. 클래스는 실제 객체의 속성과 메서드를 정의하는 반면 객체는 클래스의 발생입니다.
객체 지향에는 세 가지 기본 구성 요소가 있습니다. 이것들은:
- 객체 지향 분석 – 시스템의 기능
- 객체 지향 설계 – 시스템 아키텍처
- 객체 지향 프로그래밍 – 애플리케이션 구현
OOP의 주요 원칙
OOP의 3대 원칙을 소개하겠습니다.
캡슐화
소프트웨어 개발의 복잡성을 줄이는 것이 캡슐화의 주요 목적입니다. 구현 세부 정보를 숨기고 작업만 공개하면 됩니다. 따라서 클래스를 사용하는 것이 더 쉬워집니다.
get 및 set과 같은 메서드를 통해 클래스 변수에 액세스하면 클래스를 유지 관리하기 쉽고 유연하게 만들어 개체의 내부 상태를 보호할 수 있습니다. 이렇게 하면 코드를 깨는 것에 대해 걱정하지 않고 기본 클래스의 내부 구현을 변경할 수 있습니다.
계승
재사용성은 상속의 주요 목적입니다. 여기서는 클래스 간의 관계와 관련이 있습니다. 다양한 클래스는 부모 클래스에서 상속하도록 정의된 메서드를 사용할 수 있습니다.
예를 들어 데이터베이스에서 데이터 추가, 업데이트 및 삭제와 같은 일반적인 기능을 제공해야 하는 경우 상속이 매우 유용할 수 있습니다.
다형성
응용 프로그램 유지 관리를 단순화하고 더 확장 가능하게 만드는 것이 다형성의 목적입니다. 단일 양식에 대해 다른 구현 방법을 갖는 것과 관련이 있습니다.
laravel로 crud 작업을 만드는 방법은 무엇입니까?
Laravel은 표현력 있고 우아한 구문을 사용하는 오픈 소스 웹 애플리케이션 프레임워크입니다. 웹 프레임워크는 애플리케이션 생성을 위한 구조와 시작점을 제공하여 사용자가 주요 측면에 집중할 수 있도록 합니다.
PHP 프레임워크로서 라라벨은 객체 지향 프로그래밍을 지원합니다. Laravel은 MVC(Model View Controller) 디자인 패턴을 사용하여 애플리케이션을 생성합니다.
Php는 기존 프로그래밍 언어보다 빠르고 쉽게 수행할 수 있는 객체 지향 프로그래밍을 지원합니다. PHP4는 객체 지향 프로그래밍(OOP)을 포함하는 최초의 PHP 버전입니다. 코딩과 관련하여 객체 지향 프로그래밍은 개발자가 응용 프로그램의 데이터와 구조를 클래스로 정렬할 수 있도록 하는 기술입니다.
이제 crud 작업( Create , Read , Update 및 Delete )을 만드는 방법을 살펴보겠습니다.
모든 프로그래밍 언어로 시작하려면 시작할 언어에 대한 기본 지식이 있어야 합니다. 그래서 웹 개발에서 아주 유명한 라라벨부터 시작합니다.
1단계: 첫 번째 단계는 Laravel 프로젝트를 설치하는 것입니다. 모든 버전의 Laravel을 다운로드할 수 있습니다. 여기, 나는 Laravel의 공식 웹사이트 아래에 공유했습니다:
https://laravel.com/docs/8.x/installation#why-laravel
작곡가로 설치하거나 폴더를 설치하고 htdocs 폴더에 보관할 수 있습니다.
아래 링크에 제공된 단계를 사용하여 작곡가를 다운로드할 수 있습니다.
https://getcomposer.org/download/
CMD(명령 프롬프트)를 열고 작곡가를 입력하고 Enter 키를 눌러 시스템에 Composer가 설치되어 있는지 확인할 수 있습니다. Composer는 다음과 같이 표시됩니다.

이제 Laravel 프로젝트를 설치할 준비가 되었습니다. 이렇게 하려면 아래 단계를 따르세요.
먼저 Laravel의 공식 웹사이트를 방문해야 합니다: https://laravel.com/docs/
여기에서 작업하려는 버전을 선택할 수 있습니다.

앱 버전을 선택하고 아래로 스크롤하면 아래와 같은 명령이 표시됩니다.
작곡가 create-project --prefer-dist laravel/laravel 블로그 "5.8.*"

cmd 패널에서 이 명령을 사용하고 이 명령을 치면 프로젝트 다운로드가 시작됩니다.
htdocs 폴더에서 다운로드 중인지 확인하십시오.
몇 분 정도 소요되며 프로젝트가 다운로드되면 아래 이미지와 같은 폴더 구조가 표시됩니다.

2단계: 데이터베이스 구성 업데이트
두 번째 단계에서는 데이터베이스 구성을 만듭니다. 예를 들어, Laravel 5.8의 crud 애플리케이션에 대한 데이터베이스 이름, 사용자 이름, 비밀번호 등. 이제 .env 파일을 열고 아래와 같이 모든 세부 정보를 입력해야 합니다.


3단계: 다음 단계는 테이블을 만드는 것입니다.
제품에 대한 crud 응용 프로그램을 만들 것입니다. 따라서 Laravel 5.8 PHP artisan 명령을 사용하여 "products" 테이블에 대한 마이그레이션을 생성해야 합니다.
먼저 프로젝트 디렉터리에서 다음 명령을 실행합니다.
php artisan make:migration create_products_table --create=products
여기에서 최근에 생성된 마이그레이션을 볼 수 있습니다.
마이그레이션 파일을 열고 아래 언급된 내용을 붙여넣습니다.

<?php
Illuminate\Support\Facades\Schema를 사용하십시오.
Illuminate\Database\Schema\Blueprint를 사용하십시오.
Illuminate\Database\Migrations\Migration을 사용하십시오.
클래스 CreateProductsTable 확장 마이그레이션
{
공개 함수 up()
{
Schema::create('products', function (Blueprint $table) {
$table->increments('id');
$table->string('이름');
$table->text('세부 사항');
$테이블->타임스탬프();
});
}
공개 함수 down()
{
스키마::dropIfExists('제품');
}
}
이제 :php artisan migrate 명령을 실행해야 합니다. 이 명령을 실행하면 데이터베이스에 테이블이 생성됩니다.
4단계: 리소스 경로 생성
여기에서 제품 crud 애플리케이션에 대한 리소스 경로를 추가해야 합니다. 이렇게 하려면 "routes/web.php" 파일을 열고 다음 경로를 추가하십시오.
경로/web.php

경로::resource('제품','제품 컨트롤러');

5단계: 컨트롤러 및 모델 생성
이 단계에서는 이제 새 컨트롤러를 ProductController로 만들어야 합니다. 따라서 아래 명령을 실행하고 새 컨트롤러를 만듭니다. 새 컨트롤러를 사용하여 리소스 컨트롤러를 만듭니다.
php artisan make:controller ProductController --resource --model=제품
<?php
네임스페이스 App\Http\Controllers;

앱\제품 사용
Illuminate\Http\Request를 사용하십시오.
클래스 ProductController는 컨트롤러를 확장합니다.
{
공개 함수 인덱스()
{
$products = Product::latest()->paginate(5);
반환 보기('products.index',compact('products'))
->with('i', (request()->input('페이지', 1) - 1) * 5);
}
공개 함수 생성()
{
반환 보기('products.create');
}
공개 함수 저장소(요청 $request)
{
$request->validate([
'이름' => '필수',
'세부사항' => '필수',
]);
제품::create($request->all());
리디렉션()->경로('products.index') 반환
->with('success','제품이 성공적으로 생성되었습니다.');
}
공공기능쇼(제품 $product)
{
return view('products.show',compact('product'));
}
공개 기능 편집(제품 $product)
{
return view('products.edit',compact('product'));
}
공개 기능 업데이트(요청 $request, 제품 $product)
{
$request->validate([
'이름' => '필수',
'세부사항' => '필수',
]);
$product->update($request->all());
리디렉션()->경로('products.index') 반환
->with('success','제품 업데이트 성공');
}
public function destroy(제품 $product)
{
$제품->삭제();
리디렉션()->경로('products.index') 반환
->with('success','제품이 성공적으로 삭제되었습니다');
}
}
귀하의 모델은 아래 이미지와 같이 보일 것입니다.

6단계: 블레이드 파일 생성
폴더: resources/views/products/layout.blade.php
리소스/보기/제품/index.blade.php


리소스/보기/제품/create.blade.php
@extens('products.layout')
@섹션('콘텐츠')
<div 클래스="행">
<div class="col-lg-12 margin-tb">
<div class="왼쪽으로 당기기">
<h2>새 제품 추가</h2>
</div>
<div class="당기기 오른쪽">
<a class="btn btn-primary" href=""> 뒤로</a>
</div>
</div>
</div>
@if($errors->any())
<div class="경고 경보 위험">
<strong>죄송합니다.</strong> 입력에 문제가 있었습니다.<br><br>
<울>
@foreach($errors->all() as $error)
<li></li>
@endforeach
</ul>
</div>
@endif
<form action="" 메소드="POST">
@csrf
<div 클래스="행">
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>이름:</strong>
<input type="text" name="name" class="form-control" placeholder="이름">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>세부정보:</strong>
<textarea class="form-control" name="detail" placeholder="Detail"></textarea>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 텍스트 센터">
<button type="submit" class="btn btn-primary">제출</button>
</div>
</div>
</form>
@endsection
리소스/보기/제품/edit.blade.php
@extens('products.layout')
@섹션('콘텐츠')
<div 클래스="행">
<div class="col-lg-12 margin-tb">
<div class="왼쪽으로 당기기">
<h2>제품 수정</h2>
</div>
<div class="당기기 오른쪽">
<a class="btn btn-primary" href=""> 뒤로</a>
</div>
</div>
</div>
@if($errors->any())
<div class="경고 경보 위험">
<strong>죄송합니다.</strong> 입력에 문제가 있었습니다.<br><br>
<울>
@foreach($errors->all() as $error)
<li></li>
@endforeach
</ul>
</div>
@endif
<form action="" 메소드="POST">
@csrf
@메소드('PUT')
<div 클래스="행">
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>이름:</strong>
<입력 유형="텍스트" 이름="이름" 값="" class="form-control" 자리 표시자="이름">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>세부정보:</strong>
<textarea class="form-control" name="detail" placeholder="Detail"></textarea>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 텍스트 센터">
<button type="submit" class="btn btn-primary">제출</button>
</div>
</div>
</form>
@endsection
리소스/보기/제품/show.blade.php

이제 모든 코드를 완료했으므로 cmd에서 하나의 명령만 실행하면 됩니다.

마무리
이 블로그에서는 기본적인 프로그래밍 패러다임인 OOP 개념을 소개했습니다. OOP의 주요 원리에 대해서도 설명했습니다. 블로그는 또한 laravel에서 crud 작업을 생성하는 단계별 절차를 설명했습니다.
대규모 프로그램은 작성하기 어렵지만 개발 및 디자인 팀이 객체 지향 원칙을 고수한다면 더 적은 결함으로 더 나은 디자인을 만들 수 있습니다. 각 개체는 자체적으로 존재하기 때문에 프로그램의 모듈성을 높이는 데 도움이 됩니다.
이 블로그가 도움이 되었기를 바랍니다. www.webdew.com을 방문하여 더 많은 블로그를 읽을 수 있습니다. 그리고 웹 디자인이나 웹 개발 서비스를 찾고 계시다면 언제든지 저희에게 연락주세요!
편집자: 암루타
