Stilly

Stilly

بېكەت باشلىقى

يازمىلىرى
ئەگەشكۈچىلىرى
ئەگەشكەنلىرى
74
32
0

composer دىكى autoloader ۋە psr-4

ئاۋۋال composer دىكى autoloader ۋە psr-4 لەرنىڭ نىمە ئىكەنلىكى بىلەن تونىشىپ چىقايلى.composer دىكىautoloader  بولسا composer ئۆزىنىڭ بىر خىل ئاپتوماتىك يۈكلەش(自动加载)نى ئىشقا ئاشۇردىغان ئىقتىدارىدىن ئىبارەت.

 مەسىلەن بىز تۆۋەندىكى كودقا قاراپ باقايلى.

{
    "require": {
        
    }
    "autoload": {
        "psr-4": {"Acme\\": "src/"}
    }
}

بۇنىڭدىكى require بولسا بىز ئىشلەتمەكچى بولغان قوراللنى  ئەكىرىشنى كۆرسىتىدۇ.

autoload بولسا ئاپتوماتىك يۈكلىنىدىغان تۈر ھۆججەتلىرىنى كۆرسىتىشتە ئىشلىتىلىدۇ.

مەسىلەن ھازىر بىر Tool.php ناملىق تۈر ھۆججىتىدىن بىرسى بار دەيلى.بىز بۇ ھۆججەتنى يېڭى بىر index.php ناملىق ھۆججەتنىڭ ئىچىدە ئىشلەتمەكچى بولساق،ئادەتتىك ئەھۋالدا required ئارقىلىق ئەكىرىپ ئىشلىتىمىز.

لىكىن بىز composer ئارقىلىق بۇ مەسىلىنى ئىنتايىن قولاي ھالدا ئاپتوماتىك يۈكلىنىش شەكلى بويىچە ئۆزىمىزنىڭ تۈر ھۆججىتىدە ئىشلىتىشنى ئەمەلگە ئاشۇرالايمىز.

مەسىلەن:يەنە بىز تۆۋەندىكى كودقا قارايلى :

{
    "require": {

    },
    "autoload": {
        "psr-4": {"Oyghan\\": "oyghan/"}
    }
}

 بۇ كودتىكى autoload ئىچىدىكى psr-4 بولسا ئاپتوماتىك يۈكلەشنى ئەمەلگە ئاشۇرۇشتىكى بىر خىل ئۆلچەمدىن ئىبارەت.


بۇ ھەقتە تۆۋەندىكى يازمىلارنى كۆرۈپ باقساق بولىدۇ.

http://blog.csdn.net/lizixiang1993/article/details/48037871

http://docs.phpcomposer.com/04-schema.html#autoload


Oyghan\\ بولسا بىز ئاپتوماتىك يۈكلىمەكچى بولغان php ھۆججىتىنىڭ بوشلۇق نامى يەنى(namespace) نى كۆرسىتىدۇ.

oyghan/ بولسا بىز ئاپتوماتىك يۈكلىمەكچى بولغان php ھۆججىتىنىڭ مۇندەرىجە جايلىشىشىنى كۆرسىتىدۇ.

مەسىلەن بىز تۆۋەندىكىدەك ئەمەلىي مەشىقتىن بىرنى ئىشلەپ كۆرەيلى.

خالىغان بىر مۇندەرىجىگە composer.json ناملىق ھۆججەتتىن بىرنى قۇرۇپ،تۆۋەندىكى كودنى يازايلى.

{
    "require": {

    },
    "autoload": {
        "psr-4": {"Oyghan\\": "oyghan/"}
    }
}

ئاندىن composer install بۇيرۇقى ئارقىلىق ئىجرا قىلايلى.ئىجرا قىپ بولۇنغاندىن كىيىن composer نىڭ مۇناسىۋەتلىك ھۆججەتلىرى ھاسىل بولىدۇ.

ئاندىن composer.json ھۆججىتى بىلەن ئوخشاش بىر مۇندەرىجىگە oyghan دەپ بىر مۇندەرىجە قۇرۇپ ،بۇ مۇندەرىجە ئىچىگە Tool.php دەپ بىرتال ھۆججەت قۇرۇپ تۆۋەندىكى كودنى يازايلى.

<?php

namespace Oyghan;

class Tool
{
    public function readFile($fileName)
    {
        return $fileName;
    }
}

ئاندىن بىز composer.json ھۆججىتى بىلەن ئوخشاش بىر مۇندەرىجىگە بىر تال php ھۆججىتى قۇرۇپ،تۆۋەندىكى كودنى يازايلى.مەسىلەن index.php ناملىق ھۆججەتكە .


02.png


بۇ چاغدا تور كۆرگۈدە index.php دىگەن سۆز كۆرۈنىدۇ.دىمەك بىز composer دىكى ئاپتوماتىك يۈكلەش ئىقتىدارى بويىچە ئۆزىمىز يېزىۋالغان Tool.php قورال تۈرىنى ھىچقانداق require ياكى  include ئىشلەتمەي تۇرۇپلا ئاپتوماتىك يۈكلىۋالدۇق دىگەن گەپ .


بۇ يەردىكى دىققەت قىلىدىغان نۇقتا شۇكى :

تۈر ھۆججىتى نامى بىلەن تۈر نامى ئوخشاش بولۇشى كىرەك .يەنى Tool.php ھۆججىتىدىكى ھۆججەت نامى Tool بىلەن ئىچىدىكى class نامى ئوخشاش بولۇشى كىرەك.بۇمۇ psr-4 ئۆلچىمىنىڭ بىر تەلىپىدىن ئېبارەت.

1ئەزا بۇ تېمىنى ياقتۇردى
A13L1M17