docs for connect_info的:DBIx :: Class :: Storage :: DBI的connect_info如何工作?
connect_info
此方法通常由它封裝參數列表中的數組引用傳遞 之前在DBIx ::類::模式 「連接」, 稱爲他們在這裏。
參數列表可包含:
相同的4元件參數設置一個常會通過「連接」在DBI ,任選接着通過 DBIx ::類公認的額外屬性:
$connect_info_args = [ $dsn, $user, $password, \%dbi_attributes?, \%extra_attributes? ];
單個碼參考它返回一個 連接DBI數據庫句柄任選接着通過識別額外的屬性 DBIx ::類別:
$connect_info_args = [ sub { DBI->connect (...) }, \%extra_attributes? ];
單個hashref與混合在一起的所有屬性和該DSN /用戶/密碼 :
$connect_info_args = [{ dsn => $dsn, user => $user, password => $pass, %dbi_attributes, %extra_attributes, }]; $connect_info_args = [{ dbh_maker => sub { DBI->connect (...) }, %dbi_attributes, %extra_attributes, }];
這是基於催化劑的應用中特別有用 ,允許以下配置 (配置::一般風格):
<Model::DB> schema_class App::DB <connect_info> dsn dbi:mysql:database=test user testuser password TestPass AutoCommit 1 </connect_info> </Model::DB>
的
dsn
/user
/password
組合可以由dbh_maker
鍵 其值來代替是一個返回連接DBI數據庫CODEREF處理請注意,DBI文檔建議您始終明確設置
AutoCommit
要麼0或1. DBIx :: Class進一步建議將它設爲 設爲1,並且您通過 DBIx :: Class :: Schema方法中的「txn_do」執行事務。如果您不明確地將其設置爲0,則DBIx :: Class將其設置爲1。這是大多數DBD的默認設置。有關詳細信息,請參閱 「DBIx :: Class和AutoCommit」。
這是什麼?這是一種內部調用的方法,還是一種全局方法?而且,如果這是一種內部調用的方法,爲什麼它會被髮送一個dbh製造商或四個參數?什麼決定了它發送的內容?它被列爲一種方法。什麼是$connect_info_args
?
如果您打算轉儲整個文檔,請至少格式化它,以便它可讀?只是鏈接會比那些無法理解的混亂更好。 – ThisSuitIsBlackNot
如果您從模式類繼承並且想要影響連接的建立方式,那麼它是相關的。這可能是用於調試目的,或者注入測試數據庫或類似的東西。這也很有趣,因爲它會返回連接信息,這對於測試,調試,分析以及可能在奇怪的生產環境中也很有用。我不會將此作爲答案發布,因爲我太累了,無法詳細說明。如果你只是使用DBIC,你不需要處理這個問題。 – simbabque
當然,這是一種方法嗎? $ connect_info_args是我得到的,還是我回來的?該方法得到了什麼?它有兩個簽名嗎? –