ps es buena solución el utilizar una libreria alguna, pero eso no resuelve el problema, el problema aqui es fuera de EL FRAMEWORK, es tu tiempo de ejecución máximo…, para eso se utiizar la max_execution_time(), QUE ES PROPIO DE PHP, el tiempo máximo de ejecución POR DEFAULT es de 30 segundos, entonces si tu consulta es de cientos o miles de registros, logicamente esto depende de la red de cada quien y el tipo de servidor que tengamos y claro, como armemos nuestra consulta liberando segundos, funcionara asi como lo tienes, o con cualquier libreia, sea para pdf, o excel o etc, el problema aqui es que le tienes que incrementar el tiempo maximo de ejecución max_execution_time(90) o los segundos que tu creas convenientes, pero "CUIDADO", si tienes muchos usuarios y tu server no es muy bueno, si hacen muchas peticiones se pueden ir acabando tu memoria del server, y logicamente, tendras que ponerme mas segundos a el tiempo de ejecución, y poniendola esa linea antes donde generas la consulta o como extraes los datos con esta linea max_execution_time() es mas que suficiente, te vuelvo a repetir, eso es fuera de YII, es en si PHP PURO. Saludos
Si no es requerimietno imprimir todos los registros simultáneamente, entonces sería mejor utilizar paginación… El widget GridView hace excelentemente la tarea.
Y si es necesario obtener todos los registros de una vez (no suele ser común) entonces recomiendo exportar los datos, ya sea en CSV, .XLS, .XLSX o PDF.
Si necesita algún componente para exportación, podemos darle una mano Hay varios compatibles con Yii.