composer requirements explained