国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Laravel 開發(fā)擴(kuò)展包基本流程

AaronYuan / 2578人閱讀

摘要:介紹在中就有開發(fā)的相關(guān)介紹這其中需要運(yùn)用當(dāng)然對于我們開發(fā)人員來說開發(fā)一個(gè)擴(kuò)展包還是很值得學(xué)習(xí)的現(xiàn)在就來開發(fā)一個(gè)消息通知的擴(kuò)展包擴(kuò)展包的地址整個(gè)參照的新建包在生成好的項(xiàng)目中新建目錄和同級(jí)接著在目錄下新建包目錄我們需要去項(xiàng)目下去聲明包的命名空間

介紹

Laravel中就有Laravel Composer Package開發(fā)的相關(guān)介紹 這其中需要運(yùn)用 Service Providers 當(dāng)然對于我們Laravel開發(fā)人員
來說 開發(fā)一個(gè)擴(kuò)展包還是很值得學(xué)習(xí)的 現(xiàn)在就來開發(fā)一個(gè)消息通知的擴(kuò)展包

擴(kuò)展包的地址:https://github.com/GeekGhc/LaraFlash

整個(gè)package參照 Jeffrey Way的Flash Packages

新建包

在生成好的Laravel項(xiàng)目中新建packages目錄(和app同級(jí)) 接著在packages目錄下新建包目錄 packages/geekghc/laraflash

我們需要去laravel項(xiàng)目下去聲明包的命名空間:

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App": "app/",
        "GeekGhcLaraFlash":"packages/geekghc/laraflash/src/"
    }
},

聲明完畢之后別忘了去執(zhí)行重新生成autoload文件

$ composer dump-autoload

我們需要新建src目錄來存放我們的源文件

接著因?yàn)槲覀兪情_發(fā)一個(gè)擴(kuò)展包 之后還需要進(jìn)行測試開發(fā) 所以我們?nèi)ド梢粋€(gè)composer.json文件

$ composer init

填寫完基本信息之后 在packages/geekghc/laraflash目錄下就會(huì)生成一個(gè)composer.json文件:

我先給出

{
    "name": "geekghc/flash",
    "description": "flash for laravel",
    "license": "MIT",
    "authors": [
        {
            "name": "GeekGhc",
            "email": "ghcgavin@sina.com"
        }
    ],
    "minimum-stability": "dev",
    "require": {
        "php": ">=5.5.9",
    },
    "require-dev": {
        "phpunit/phpunit": "~5.7",
        "mockery/mockery": "0.9.*"
    },
    "autoload": {
        "psr-0": {
            "GeekGhcLaraFlash": "src/"
        },
        "files": [
            "src/GeekGhc/LaraFlash/function.php"
        ]
    }
}

完成好composer.json后 我們可以去src/GeekGhc/LaraFlash目錄下新建一個(gè)Flash.php


我們這里繼承了Facade類,用Facades可以訪問IoC容器中注冊的類 這樣我們就可以去調(diào)用注冊的類

同時(shí)我們需要去新建一個(gè)Service Provider

$ php artisan make:provider FlashProvider

將生成的 app/Providers/FlashProvider.php 文件移動(dòng)到我們的 packages/geekghc/laraflash/src/GeekGhc/LaraFlash/ 目錄下面,并注冊 FlashProviderconfig/app.php

FlsahProvider里面我們?nèi)懸幌轮笪覀冃枰壎ǖ念?

public function register()
{
    $this->app->bind(
        "GeekGhcLaraFlashSessionStore",
        "GeekGhcLaraFlashLaravelSessionStore"
    );

    $this->app->singleton("laraflash",function(){
        return $this->app->make("GeekGhcLaraFlashFlashNotifier");
    });
}

這邊我們就綁定了封裝好的SessionStore 之后我們?nèi)ヅ渲靡幌乱晥D的路徑

public function boot()
{
    $this->loadViewsFrom(__DIR__."/../../views","laraflash");
    $this->publishes([
        __DIR__."/../../views"=>base_path("resources/views/vendor/laraFlash"),
    ]);
}

這里我們就發(fā)布了我們的視圖文件 如果在項(xiàng)目里去執(zhí)行

$ php artisan vendor:publish

我們就可以在resources/views/vendor/laraFlash去自定義自己需要的樣式效果

接著在config/app.php去注冊我們的服務(wù)

"providers" => [
    GeekGhcLaraFlashMyFlashProvider::class,
];

為了方便使用 可以再去添加一個(gè)alias

"aliases" => [
    "LaraFlash"=>GeekGhcLaraFlashFlash::class,
];

接著我們可以去實(shí)現(xiàn)flash的主要功能服務(wù) 每個(gè)包的功能都根據(jù)需求而來 這里也不多做介紹
最后的目錄結(jié)構(gòu)是這樣的

|
|—— packages 
| |—— geekghc
|   |—— laraflash 
|     |—— src            源文件
|       |—— GeekGhc      源文件
|         |—— LaraFlash     
|           |—— Flash.php     
|           |—— FlashNotifier.php     
|           |—— function.php     
|           |—— FlashProvider.php     
|           |—— SessionStore.php     
|           |—— LaravelSessionStore.php     
|       |—— views        視圖文件
|     |—— tests          測試目錄
|     |—— vendor         測試需要的包
|     |—— .gitignore    
|     |—— composer.json    
|     |—— composer.lock    
|     |—— phpunit.xml  
|     |—— readme.md

這樣的話 我們就在本地寫好了擴(kuò)展包 我們其實(shí)可以去創(chuàng)建一個(gè)控制器去測試我們這個(gè)包是否正常

在視圖home.blade.php我們就可以去包含views里面的視圖文件

@include("laraflash::notification")

或者

@include("laraflash::header-notification")

接著在控制器去使用類似這樣的形式:

LaraFlash::success("Message")

LaraFlash::info("Message")

LaraFlash::error("Message")

LaraFlash::warning("Message")

包的具體使用去GeekGhc/LaraFlash看一下具體使用就知道了

最后的效果大概就是這樣的:

顯示正常之后我們就可以去發(fā)布我們的package

github先創(chuàng)建一個(gè)倉庫 當(dāng)然我這里的就是創(chuàng)建了LaraFlash這個(gè)遠(yuǎn)程倉庫

緊接著我們?nèi)ネ坪梦覀兊拇a到github

接著我們需要去倉庫的setting => Intergrations&services添加Packagist服務(wù)(填寫好用戶名和Token)

添加完畢之后去Packagist Submit這個(gè)倉庫(提供遠(yuǎn)程倉庫的地址)

github進(jìn)入packagist測試通過之后就ok了

因?yàn)槲覀冎岸x的dev版本 如果后期有人提出了一些issues你去修改了自己的package

那么我們會(huì)去增加別的tag 也是就是說你修改package之后 再去添加一個(gè)tag:

$ git tag 2.0 -a

填寫說明信息后 推送這個(gè)tag:

$ git push --tags

這樣一來我們就發(fā)布了v2.0這個(gè)版本 這就是我們發(fā)布擴(kuò)展包大概流程

博客文章地址Laravel Package

參考資料

Laravel Composer Package 開發(fā)簡明教程

Laravel 的擴(kuò)展插件開發(fā)指南

Laravel Package Development

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/22719.html

相關(guān)文章

  • 如何正確使用 Composer 安裝 Laravel 擴(kuò)展

    摘要:流程一新項(xiàng)目流程創(chuàng)建,并添加依賴到的擴(kuò)展包運(yùn)行,安裝擴(kuò)展包并生成提交到代碼版本控制器中,如流程二項(xiàng)目協(xié)作者安裝現(xiàn)有項(xiàng)目克隆項(xiàng)目后,根目錄下直接運(yùn)行從中安裝指定版本的擴(kuò)展包以及其依賴此流程適用于生產(chǎn)環(huán)境代碼的部署。 本文經(jīng)授權(quán)轉(zhuǎn)自 PHPHub 社區(qū) 問題說明 我們經(jīng)常要往現(xiàn)有的項(xiàng)目中添加擴(kuò)展包,有時(shí)候因?yàn)槲臋n的錯(cuò)誤引導(dǎo),如下圖來自 這個(gè)文檔 的: showImg(https://dn-...

    BlackMass 評(píng)論0 收藏0
  • Laravel 深入核心系列教程

    摘要:前言年底了不太忙,最近一段時(shí)間也一直在研究,就想寫篇關(guān)于比較深一點(diǎn)的教程系列啥的,于是就找到站長給開了寫教程的渠道。優(yōu)點(diǎn)的就是為藝術(shù)家創(chuàng)造的框架,它也是工程化的趨勢。項(xiàng)目維護(hù)方便也是事實(shí)。如果有遇到問題可以直接在教程下面留言。 前言 年底了不太忙,最近一段時(shí)間也一直在研究laravel,就想寫篇關(guān)于laravel比較深一點(diǎn)的教程系列啥的,于是就找到站長給開了寫教程的渠道。由于第一次寫,...

    wemall 評(píng)論0 收藏0
  • 人人必備的10個(gè) Laravel 4 擴(kuò)展

    摘要:更多擴(kuò)展包中有豐富的擴(kuò)展包來幫你完成幾乎任何你想實(shí)現(xiàn)的功能。我們不能把所有的擴(kuò)展包都整理出來,然而,這里還是列出了一些很有用的。總之,你幾乎總是能夠找到一個(gè)擴(kuò)展包可以解決你當(dāng)前的問題。 Laravel 是一個(gè)非常流行且簡單易用的PHP框架,它提供了很多基礎(chǔ)的工具(如 RESTful 路由、內(nèi)置的ORM、模版等)使你能夠快速的創(chuàng)建應(yīng)用。這意味著你可以花費(fèi)更少的時(shí)間來建立應(yīng)用程序的模版,給...

    darkbug 評(píng)論0 收藏0
  • 基于Composer的Laravel擴(kuò)展開發(fā)工作流

    使用場景 在引用第三方包的時(shí)候,對第三方包有改動(dòng)需求,需要將代碼放在自己的倉庫;并且自己的其他項(xiàng)目也有需求引用自定義的第三方包;甚至自己會(huì)發(fā)布修改后的第三方包; 讀完本文你講獲得: Git Submodule的基本使用 從本地加載第三方包 從自定義倉庫地址獲取擴(kuò)展包 快速創(chuàng)建第三方包 本文是在我自己想要?jiǎng)?chuàng)建一個(gè)基礎(chǔ)第三方包的時(shí)候記錄下的操作步驟 1、利用git submoudle在已有項(xiàng)目中使...

    Faremax 評(píng)論0 收藏0
  • 如何開發(fā)、本地測試、發(fā)布 Laravel 擴(kuò)展

    摘要:現(xiàn)在已經(jīng)有了很多,關(guān)于如何開發(fā)擴(kuò)展包的文章。提交代碼到首先,需要把擴(kuò)展包的代碼提交到上,記錄下版本庫的地址,注意是。填寫完畢,提交后,記得測試一次,完成首次同步,成功會(huì)提示信息。 現(xiàn)在已經(jīng)有了很多,關(guān)于如何開發(fā) Laravel 擴(kuò)展包的文章。但是大多文章寫的太過片面,不夠完整,而且我在實(shí)際進(jìn)行開發(fā)擴(kuò)展包的時(shí)候,還是遇到了很多的問題,我把自己的開發(fā)經(jīng)驗(yàn),以及遇到的問題記錄下來,分享給大家...

    nanchen2251 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<