Розширення функціоналу Yii - стандартна практика у процесі розробки. Наприклад, для написання нового контролера, вам необхідно розширити Yii шляхом успадкування його класу CController; для написання віджету - класа CWidget або класу вже існуючого віджету. Якщо дописаний код оформлений для використання сторонніми розробниками, ми називаємо його розширенням (extension).
Як правило, кожне розширення служить лише для однієї мети. Використовуючи термінологію, прийняту в Yii, розширення можна класифікувати наступним чином:
Втім, розширення може і не відповідати ні одній із перерахованих категорій. Yii спочатку був спроектований таким чином, щоб будь-яку його частину можна було змінити і доповнити для будь-яких потреб.