官术网_书友最值得收藏!

Having a single point of entry to the module

init.pp should be the single entry point for the module. In this way, someone reviewing the documentation in particular, as well as the code in init.pp, can have a complete overview of the module's behavior.

If you've used encapsulation effectively and used descriptive class names, you can get a very good sense just by looking at init.pp of how the module actually manages the software.

Modules that have configurable parameters should be configurable in a single way and in this single place. The only exception to this would be, for example, a module such as the Apache module, where one or more virtual directories are also configurable.

Ideally, you can use your module with a simple include statement, as follows:

include mymodule

You can also use it with the use of a class declaration, as follows:

class {'mymodule':
myparam => false,
}

The Apache virtual directory style of configuring a number of defined types would be the third way to use your new module:

mymodule::mydefine {‘define1':
myotherparam => false,
}

The anti-pattern to this recommendation would be to have a number of classes other than init.pp and your defined types with parameters expecting to be set.

主站蜘蛛池模板: 宝鸡市| 辛集市| 呼图壁县| 犍为县| 岢岚县| 通河县| 监利县| 渭源县| 凤冈县| 昌邑市| 封丘县| 东台市| 黄石市| 老河口市| 阳江市| 韶山市| 永康市| 霍山县| 准格尔旗| 利川市| 闸北区| 武义县| 霍林郭勒市| 卓尼县| 湘潭县| 陈巴尔虎旗| 彭水| 盐津县| 庆元县| 凤冈县| 循化| 宁阳县| 县级市| 昌宁县| 嘉鱼县| 托克逊县| 菏泽市| 石屏县| 江北区| 温泉县| 全南县|