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는 주로 절차 적 프로그래밍이지만 객체 지향 프로그래밍 (OOP)도 지원합니다. Python은 OOP, 기능 및 절차 프로그래밍을 포함한 다양한 패러다임을 지원합니다. PHP는 웹 개발에 적합하며 Python은 데이터 분석 및 기계 학습과 같은 다양한 응용 프로그램에 적합합니다.

PHP는 1994 년에 시작되었으며 Rasmuslerdorf에 의해 개발되었습니다. 원래 웹 사이트 방문자를 추적하는 데 사용되었으며 점차 서버 측 스크립팅 언어로 진화했으며 웹 개발에 널리 사용되었습니다. Python은 1980 년대 후반 Guidovan Rossum에 의해 개발되었으며 1991 년에 처음 출시되었습니다. 코드 가독성과 단순성을 강조하며 과학 컴퓨팅, 데이터 분석 및 기타 분야에 적합합니다.

PHP는 웹 개발 및 빠른 프로토 타이핑에 적합하며 Python은 데이터 과학 및 기계 학습에 적합합니다. 1.PHP는 간단한 구문과 함께 동적 웹 개발에 사용되며 빠른 개발에 적합합니다. 2. Python은 간결한 구문을 가지고 있으며 여러 분야에 적합하며 강력한 라이브러리 생태계가 있습니다.

PHP는 현대화 프로세스에서 많은 웹 사이트 및 응용 프로그램을 지원하고 프레임 워크를 통해 개발 요구에 적응하기 때문에 여전히 중요합니다. 1.PHP7은 성능을 향상시키고 새로운 기능을 소개합니다. 2. Laravel, Symfony 및 Codeigniter와 같은 현대 프레임 워크는 개발을 단순화하고 코드 품질을 향상시킵니다. 3. 성능 최적화 및 모범 사례는 응용 프로그램 효율성을 더욱 향상시킵니다.

phphassignificallyimpactedwebdevelopmentandextendsbeyondit

PHP 유형은 코드 품질과 가독성을 향상시키기위한 프롬프트입니다. 1) 스칼라 유형 팁 : PHP7.0이므로 int, float 등과 같은 기능 매개 변수에 기본 데이터 유형을 지정할 수 있습니다. 2) 반환 유형 프롬프트 : 기능 반환 값 유형의 일관성을 확인하십시오. 3) Union 유형 프롬프트 : PHP8.0이므로 기능 매개 변수 또는 반환 값에 여러 유형을 지정할 수 있습니다. 4) Nullable 유형 프롬프트 : NULL 값을 포함하고 널 값을 반환 할 수있는 기능을 포함 할 수 있습니다.

PHP에서는 클론 키워드를 사용하여 객체 사본을 만들고 \ _ \ _ Clone Magic 메소드를 통해 클로닝 동작을 사용자 정의하십시오. 1. 복제 키워드를 사용하여 얕은 사본을 만들어 객체의 속성을 복제하지만 객체의 속성은 아닙니다. 2. \ _ \ _ 클론 방법은 얕은 복사 문제를 피하기 위해 중첩 된 물체를 깊이 복사 할 수 있습니다. 3. 복제의 순환 참조 및 성능 문제를 피하고 클로닝 작업을 최적화하여 효율성을 향상시키기 위해주의를 기울이십시오.

PHP는 웹 개발 및 컨텐츠 관리 시스템에 적합하며 Python은 데이터 과학, 기계 학습 및 자동화 스크립트에 적합합니다. 1.PHP는 빠르고 확장 가능한 웹 사이트 및 응용 프로그램을 구축하는 데 잘 작동하며 WordPress와 같은 CMS에서 일반적으로 사용됩니다. 2. Python은 Numpy 및 Tensorflow와 같은 풍부한 라이브러리를 통해 데이터 과학 및 기계 학습 분야에서 뛰어난 공연을했습니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

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

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