1. 程式人生 > >github=>git=>composer Packages 使用教程

github=>git=>composer Packages 使用教程

2018年12月17日14:32:05

因為要做搜尋,所以需要用分詞工具php的分詞不借助的第三方的真的很少,

目前選擇的是 http://www.phpbone.com/phpanalysis/

但是這個外掛沒有放上github,雖然有些同學自己搬到了github上但是都有一些封裝,但是不是原生直接搬過去的

1,先註冊github

建立  Create a new repository   https://github.com/new 注意要是公開,注意不要使用下劃線,中劃線等非字母數字,防止後面讀取composer.json 時候名字不一致,可能出現載入不了

舉例: https://github.com/zh7314/phpanalysis 

 

 2,連線github專案關聯原生代碼專案

 參考:https://www.cnblogs.com/ttjsndx/p/7943444.html

在本機上設定你的github的郵箱和使用者名稱

git config --global user.name "使用者名稱"
git config --global user.email "郵箱"

ssh-keygen -t rsa -C "郵箱"

 根據提示,按三次回車鍵,最後會生成ssh key值,並告訴你key值存放的檔案的位置,找到該檔案並複製ssh key

 

記住你存放.ssh 的位置,找到找有 id_rsa.pub  可能因為系統原因這個檔名會不同

開啟你的github主頁。找到Settings,

開啟你的github主頁。找到Settings,選擇SSH and GPG keys ,再選擇new SSH key,title 隨意填,key值就是剛剛生成的本機 SSH KEY

開啟github主頁,選擇 new repository,開啟新建專案頁面。      在新建專案頁面,輸入專案名稱,點選下一步,複製生成專案後的專案SSH   2.開啟本地倉庫的git bash頁面。輸入 git remote add origin "專案SSH"    3.先同步github上master分支的程式碼,再指定上傳的預設分支 git pull origin master git push -u origin master   第三步設定了本地倉庫對應的是github賬戶上的哪一個專案,並且設定了程式碼上傳的分支。注意github上的專案名稱與本地倉庫名稱同級,也就是說,從github上同步程式碼時,只會更新專案名稱下的各個檔案到本地倉庫中。

 

 

3,登入https://packagist.org/ 用github賬號登入,然後直接點 submit  填寫github的url 例如 https://github.com/zh7314/phpanalysis.git  這個是我剛弄好的

如果你github有更新程式碼請 update 更新

到了具體包的頁面例如 https://packagist.org/packages/zh7314/phpanalysis

composer require zh7314/phpanalysis dev-master   就可以直接下載包,注意包的版本,我這邊寫 dev

 

 官方文件: https://git-scm.com/book/zh/v2

git常用命令

 

 

 

 

程式碼裡面需要建立 新的程式碼包裡面 composer.json,這個是必須

例:

{
    "name": "zh7314/phpanalysis",   //這個是  Packages的名稱注意,這個不是repository   的名稱,最好一直
    "description": "phpanalysis中文分詞",
    "type": "library",
    "licence": "MIT",
    "require": {
        "php": ">=5.6.5" //php版本
    },
    "autoload": {
        "psr-4": {
            "zh7314\\": "./"  目錄全部載入,也可以指定某個目錄的原始碼
        },
        "files": [
        ]
    },
    "minimum-stability": "dev" //最小穩定版本
}

 

最好放一個autoloader自動載入

<?php

namespace phpspider;

/**
 * autoloader.
 */
class autoloader
{
    /**
     * Autoload root path.
     *
     * @var string
     */
    protected static $_autoload_root_path = '';

    /**
     * Set autoload root path.
     *
     * @param string $root_path
     * @return void
     */
    public static function set_root_path($root_path)
    {
        self::$_autoload_root_path = $root_path;
    }

    /**
     * Load files by namespace.
     *
     * @param string $name
     * @return boolean
     */
    public static function load_by_namespace($name)
    {
        $class_path = str_replace('\\', DIRECTORY_SEPARATOR, $name);

        if (strpos($name, 'zh7314\\') === 0) 
        {
            $class_file = __DIR__ . substr($class_path, strlen('zh7314')) . '.php';
        }
        else 
        {
            if (self::$_autoload_root_path) 
            {
                $class_file = self::$_autoload_root_path . DIRECTORY_SEPARATOR . $class_path . '.php';
            }
            if (empty($class_file) || !is_file($class_file)) 
            {
                $class_file = __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . "$class_path.php";
            }
        }

        if (is_file($class_file)) 
        {
            require_once($class_file);
            if (class_exists($name, false)) 
            {
                return true;
            }
        }
        return false;
    }
}

spl_autoload_register('\zh7314\autoloader::load_by_namespace');