Laravel을 사용하는 많은 개발자는 프레임워크가 제공하는 기능의 표면적인 부분에 대해서만 접했을 수도 있습니다. 문서는 가장 일반적인 사용 사례와 확실한 기능을 다루지만 모든 것을 다루지는 않습니다.
오해하지 마세요. 문서는 훌륭합니다. 단지 할 수 있는 일이 너무 많아서 모든 것을 문서화하기가 어렵다는 것뿐입니다. 그래서 우리는 Laravel에 숨어 있는 몇 가지 숨겨진 보석을 살펴보겠습니다.
계단식 뷰
사용 가능 시간: v4.0.0
기록: 아니요
뷰는 구성 파일처럼 계단식으로 배열될 수 있습니다. 계단식 보기는 확장 가능한 테마 시스템을 개발할 때 매우 유용합니다. 다음 디렉터리 구조를 고려하세요.
으아아아아이디어는 우리가 return View::make('theme::blog.index');
时,它会首先在 themes/default/views
目录中查找,如果找不到的话找到视图,回退到 app/views
할 때입니다.
이를 위해 View::addNamespace
를 사용하여 두 위치 모두에 자체 네임스페이스를 등록합니다.
컬렉션
사용 가능 시간: v4.0.0
기록: 부분
컬렉션은 배열과 상호 작용하고 관리하는 좋은 방법입니다. 컬렉션에는 다양한 편의 메서드가 있으며 ArrayableInterface
、IteratorAggregate
和 JsonableInterface
와 같은 유용한 인터페이스를 많이 구현합니다.
플랫 파일을 저장용으로 사용하는 작은 블로그 엔진을 구축한다고 가정해 보겠습니다. 우리는 정렬, 필터링, 페이징과 같은 작업을 수행할 수 있기를 원합니다.
블로그 엔진 구현은 이 기사의 범위를 벗어나지만 배열의 새 인스턴스가 있고$articles
,并且该数组的每个成员都是 Article
类的实例。然后我们需要做的就是获取 Collection
이를 게시물 배열과 함께 제공한다고 가정합니다.
정렬
컬렉션을 사용하여 기사를 정렬할 수 있습니다. 기사를 정렬하고 가장 최근에 업데이트된 기사를 먼저 표시해 보겠습니다. 이 기사에서는 파일 시스템에서 기사를 로드할 때 updatedAt
속성을 파일의 마지막 수정 시간으로 설정한다고 가정합니다.
sortBy
和 sortByDesc
메서드는 컬렉션을 정렬하는 데 사용할 수 있는 값을 반환해야 하는 콜백을 허용합니다. 우리의 경우 기사의 마지막 수정 시간을 간단히 반환할 수 있으며 해당 시간을 기준으로 컬렉션을 정렬할 수 있습니다.
필터
정렬과 마찬가지로 MySQL의 WHERE
절과 마찬가지로 컬렉션을 사용하여 기사를 필터링할 수도 있습니다. 실행되었을 수 있는 검색을 기반으로 기사를 필터링해 보겠습니다.
filter
方法实际上返回 IlluminateSupportCollection
的新实例,因此我们需要将其分配给 $results
변수. 이 새로운 컬렉션에는 "Laravel rock!"을 언급하는 기사만 포함됩니다.
페이지 매김
이 컬렉션을 사용하면 단일 페이지에 기사가 너무 많지 않도록 기사의 페이지를 매길 수 있습니다.
으아아아변수를 slice
方法,我们提取集合中的一部分文章并将其分配给 $results
사용하세요.
이 예제는 Laravel의 Paginator
클래스의 새 인스턴스를 생성하여 추가로 구현할 수 있습니다. 이렇게 하면 모든 페이지 번호와 링크가 생성될 수 있습니다.
더 많은 내용이 준비되어 있습니다!
임의의 기사를 얻을 수 있습니다:
으아아아기사 컬렉션을 일반 배열인 것처럼 반복할 수도 있습니다. 이것은 모두 IteratorAggregate
和 ArrayIterator
인터페이스 덕분입니다.
기사를 일반 배열이나 JSON 표현으로 변환할 수도 있습니다.
으아아아가장 멋진 방법 중 하나는 아마도 groupBy
일 것인데, 이를 통해 특정 키를 기준으로 기사를 그룹화할 수 있습니다. 각 기사 상단에 구문 분석되어 기사 본문에서 제거되는 일부 메타데이터가 있다고 가정해 보세요.
이 메타데이터의 구문 분석은 이 기사의 범위를 벗어나지만 우리는 그것이 구문 분석되고 Article
인스턴스의 속성이라고 가정합니다. 그런 다음 Article
实例上的属性。然后,您可以使用 groupBy
를 사용하여 기사가 게시된 카테고리별로 기사를 그룹화할 수 있습니다.
동일한 카테고리를 공유하는 모든 글은 그룹화됩니다. 그런 다음 특정 카테고리의 기사를 얻을 수 있습니다.
으아아아컬렉션은 Laravel이 제공하는 최고의 숨겨진 보석 중 하나입니다.
정규 표현식 필터
이용 시간: v4.1.19
기록: 아니요
Laravel의 경로 필터링은 많은 프로젝트에서 수행하는 일반적인 작업입니다. 필터를 사용하면 경로가 트리거되기 전이나 후에 사용자 인증이나 속도 제한과 같은 작업을 수행할 수 있습니다. Route::filter
创建过滤器,并可以将它们应用于单个路由、路由组,或者使用 Route::when
를 사용하여 일치하는 패턴에 적용합니다.
Route::filter('restricted', function($route, $request, $group) { // Restrict user access based on the value of $group }); Route::when('admin/*', 'restricted:admin');
在此示例中,我们创建一个 restricted
过滤器,它需要一个参数 $group
。 $route
和 $request
参数始终提供给 before 过滤器。
但是如果我们想要更大的灵活性怎么办?假设我们想要将过滤器应用于所有 admin
路由除了 admin/login
。我们可以使用路线组并将相关路线移至组外。或者我们可以使用 Route::whenRegex
并编写我们自己的正则表达式。
Route::whenRegex('/^admin(\/(?!login)\S+)?$/', 'restricted:admin');
此正则表达式只是确保它仅适用于以 admin
开头且后面不跟 /login
的路由,但后面可以跟任何其他内容。出色的。现在,我们将 restricted:admin
过滤器应用于除 admin/login
路由之外的所有路由。
消息包
可用时间: v4.0.0
记录:部分
毫无疑问,您已经使用 Illuminate\Support\MessageBag
一段时间了,甚至没有意识到。 MessageBag
扮演的最大角色是在使用 Laravel 内置验证器时包含所有验证错误。
每个视图中都有一个$errors
变量,该变量包含空的MessageBag
实例或使用Redirect::to('/')->withErrors($validator);
刷新到会话的实例
当在特定输入下方显示错误消息时,很多人可能会在表单中执行类似的操作。
{{ Form::text('username', null) }} @if($errors->has('username')) <div class="error">{{ $errors->first('username') }}></div>; @endif
您实际上可以完全删除 if
语句,并使用 first
方法的第二个参数将消息包装在 div
中。
{{ Form::text('username', null) }} {{ $errors->first('username', '<div class="error">:message</div>') }}
好多了,好多了!
流利
可用时间: v3.0.0
记录:部分
Fluent
类已经存在很长时间了,当使用模式生成器创建迁移时,它实际上在框架本身内使用。 Laravel 3 和 Laravel 4 之间,类本身几乎没有变化,唯一大的区别是多了一些接口。
要使用 Fluent
类,您所需要做的就是获取一个实例,然后就可以了。
$user = new Illuminate\Support\Fluent; $user->name('Jason')->country('Australia')->subscriber();
该实例现在定义了 3 个属性:name
,值为 Jason
、country
,值为 Australia
和 subscriber
,值为布尔值 true
。
在 Laravel 4.1 之前,您只能从实例中真正设置和获取属性。从 Laravel 4.1 开始,您可以使用 toArray
和 toJson
方法分别获取属性数组及其 JSON 表示形式。
从 Laravel 4.2 开始,该类还实现了 JsonSerialized
接口,这意味着您可以将实例直接传递到 json_encode
中。
还有更多!
我们已经研究了 Laravel 框架的几个有用的精华。但是,正如您所猜测的,框架内还有更多内容。
了解 Laravel 可能提供的其他功能的最佳方法是深入研究源代码。它并不像您想象的那么可怕,您将学到很多关于您正在构建的框架的知识。
如果您发现了其他宝石,请随时在评论中分享!
위 내용은 Laravel의 숨겨진 보물을 찾아보세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

PHP는 전자 상거래, 컨텐츠 관리 시스템 및 API 개발에 널리 사용됩니다. 1) 전자 상거래 : 쇼핑 카트 기능 및 지불 처리에 사용됩니다. 2) 컨텐츠 관리 시스템 : 동적 컨텐츠 생성 및 사용자 관리에 사용됩니다. 3) API 개발 : 편안한 API 개발 및 API 보안에 사용됩니다. 성능 최적화 및 모범 사례를 통해 PHP 애플리케이션의 효율성과 유지 보수 성이 향상됩니다.

PHP를 사용하면 대화식 웹 컨텐츠를 쉽게 만들 수 있습니다. 1) HTML을 포함하여 컨텐츠를 동적으로 생성하고 사용자 입력 또는 데이터베이스 데이터를 기반으로 실시간으로 표시합니다. 2) 프로세스 양식 제출 및 동적 출력을 생성하여 htmlspecialchars를 사용하여 XSS를 방지합니다. 3) MySQL을 사용하여 사용자 등록 시스템을 작성하고 Password_Hash 및 전처리 명세서를 사용하여 보안을 향상시킵니다. 이러한 기술을 마스터하면 웹 개발의 효율성이 향상됩니다.

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

PHP는 여전히 역동적이며 현대 프로그래밍 분야에서 여전히 중요한 위치를 차지하고 있습니다. 1) PHP의 단순성과 강력한 커뮤니티 지원으로 인해 웹 개발에 널리 사용됩니다. 2) 유연성과 안정성은 웹 양식, 데이터베이스 작업 및 파일 처리를 처리하는 데 탁월합니다. 3) PHP는 지속적으로 발전하고 최적화하며 초보자 및 숙련 된 개발자에게 적합합니다.

PHP는 현대 웹 개발, 특히 컨텐츠 관리 및 전자 상거래 플랫폼에서 중요합니다. 1) PHP는 Laravel 및 Symfony와 같은 풍부한 생태계와 강력한 프레임 워크 지원을 가지고 있습니다. 2) Opcache 및 Nginx를 통해 성능 최적화를 달성 할 수 있습니다. 3) PHP8.0은 성능을 향상시키기 위해 JIT 컴파일러를 소개합니다. 4) 클라우드 네이티브 애플리케이션은 Docker 및 Kubernetes를 통해 배포되어 유연성과 확장 성을 향상시킵니다.

PHP는 특히 빠른 개발 및 동적 컨텐츠를 처리하는 데 웹 개발에 적합하지만 데이터 과학 및 엔터프라이즈 수준의 애플리케이션에는 적합하지 않습니다. Python과 비교할 때 PHP는 웹 개발에 더 많은 장점이 있지만 데이터 과학 분야에서는 Python만큼 좋지 않습니다. Java와 비교할 때 PHP는 엔터프라이즈 레벨 애플리케이션에서 더 나빠지지만 웹 개발에서는 더 유연합니다. JavaScript와 비교할 때 PHP는 백엔드 개발에서 더 간결하지만 프론트 엔드 개발에서는 JavaScript만큼 좋지 않습니다.

PHP와 Python은 각각 고유 한 장점이 있으며 다양한 시나리오에 적합합니다. 1.PHP는 웹 개발에 적합하며 내장 웹 서버 및 풍부한 기능 라이브러리를 제공합니다. 2. Python은 간결한 구문과 강력한 표준 라이브러리가있는 데이터 과학 및 기계 학습에 적합합니다. 선택할 때 프로젝트 요구 사항에 따라 결정해야합니다.

PHP는 서버 측에서 널리 사용되는 스크립팅 언어이며 특히 웹 개발에 적합합니다. 1.PHP는 HTML을 포함하고 HTTP 요청 및 응답을 처리 할 수 있으며 다양한 데이터베이스를 지원할 수 있습니다. 2.PHP는 강력한 커뮤니티 지원 및 오픈 소스 리소스를 통해 동적 웹 컨텐츠, 프로세스 양식 데이터, 액세스 데이터베이스 등을 생성하는 데 사용됩니다. 3. PHP는 해석 된 언어이며, 실행 프로세스에는 어휘 분석, 문법 분석, 편집 및 실행이 포함됩니다. 4. PHP는 사용자 등록 시스템과 같은 고급 응용 프로그램을 위해 MySQL과 결합 할 수 있습니다. 5. PHP를 디버깅 할 때 error_reporting () 및 var_dump ()와 같은 함수를 사용할 수 있습니다. 6. 캐싱 메커니즘을 사용하여 PHP 코드를 최적화하고 데이터베이스 쿼리를 최적화하며 내장 기능을 사용하십시오. 7


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

드림위버 CS6
시각적 웹 개발 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.
